嵌入式stm32f103 CRC校验
时间: 2023-09-25 17:10:54 浏览: 109
嵌入式stm32f103可以使用硬件CRC校验功能,该功能可以快速计算数据的CRC校验值。
以下是使用硬件CRC校验功能进行CRC校验的步骤:
1. 使能CRC时钟。
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
2. 配置CRC计算方式。
CRC_ResetDR();
CRC_InitStructure.CRCLength = CRC_CRCLength_32Bit;
CRC_InitStructure.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_ENABLE;
CRC_InitStructure.DefaultInitValueUse = DEFAULT_INIT_VALUE_ENABLE;
CRC_InitStructure.InputDataInversionMode = CRC_InputDataInversion_None;
CRC_InitStructure.OutputDataInversionMode = CRC_OutputDataInversion_Disable;
CRC_Init(&CRC_InitStructure);
3. 向CRC数据寄存器填充数据。
CRC_ResetDR();
CRC_CalcCRC(data, length);
4. 读取CRC校验值。
crc = CRC_GetCRC();
注意事项:
1. 在进行CRC校验之前,需要先配置好CRC计算方式。
2. 数据长度必须是4的倍数,否则会出现计算错误。
3. 在使用硬件CRC校验功能时,需要将数据按照大端模式写入CRC数据寄存器。
阅读全文