用户对问题“如何将我的uint8

您所在的位置:网站首页 uint8数组转uint32 用户对问题“如何将我的uint8

用户对问题“如何将我的uint8

2023-03-21 05:18| 来源: 网络整理| 查看: 265

在用于实现CRC的自动生成HAL代码中,我具有以下功能:

uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength) { uint32_t index; /* CRC input data buffer index */ uint32_t temp = 0U; /* CRC output (read from hcrc->Instance->DR register) */ /* Change CRC peripheral state */ hcrc->State = HAL_CRC_STATE_BUSY; switch (hcrc->InputDataFormat) { case CRC_INPUTDATA_FORMAT_WORDS: /* Enter Data to the CRC calculator */ for (index = 0U; index < BufferLength; index++) { hcrc->Instance->DR = pBuffer[index]; } temp = hcrc->Instance->DR; break; case CRC_INPUTDATA_FORMAT_BYTES: temp = CRC_Handle_8(hcrc, (uint8_t *)pBuffer, BufferLength); break; case CRC_INPUTDATA_FORMAT_HALFWORDS: temp = CRC_Handle_16(hcrc, (uint16_t *)(void *)pBuffer, BufferLength); /* Derogation MisraC2012 R.11.5 */ break; default: break; } /* Change CRC peripheral state */ hcrc->State = HAL_CRC_STATE_READY; /* Return the CRC computed value */ return temp; }

问题是,我自己的inBuff是uint8_t * inBuff类型的,在自动生成的代码中我可以看到它需要一个uint32_t作为输入,而且在以后,当我为CRC使用CRC_INPUTDATA_FORMAT_BYTES选项时,只需将其类型转换为uint8_t。需要我的uint8_t buff的原因是让它与我的其余代码(相当大的项目)一起工作。有没有理由在不损害我自己的inBuff内容的情况下高效地解决这个问题?它需要正确对齐。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3