而STM32的硬件CRC单元是以32位的字为单位计算的。我们知道CRC实际上是个多项式的除法运算,而除法运算是从高位算起的。也就是相当于它是按照0x1003、0x1002、0x1001、0x1000这个顺序计算第一个字,然后按照0x1007、0x1006、0x1005、x1004的顺序计算第二个字。因此。我们要是预先将字节序调换一下得到结果就没...
STM32F10x学习笔记3(CRC计算单元) STM32F系列的单片机内部带了CRC32计算单元。这个内置CRC模块的 方法使用非常简单。其操作如下图所示。 图1CRC计算单元框图 归纳起来有如下几步操作:1.开启CRC单元的时钟。 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE)2.复位CRC模块 ...
STM32F10x StdPeriph Driver 中提供了几个函数。CRC_ResetDR(void)用来复位CRC 模块。uint32_t CRC_CalcCRC(uint32_t Data)将一个数据写入CRC_DR 寄存器,返回值为计算结果。uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)计算一个数组的CRC 值。uint32_t CRC_GetCRC(void)读取...