通用CRC32校验程序,可完美匹配STM32硬件CRC算法

本文介绍了CRC32校验码的概念及其在数据通信中的应用,强调了CRC码在确保数据传输正确性和完整性中的作用。文章详细讲解了CRC算法的参数模型,包括名称、宽度、生成项、初始值、输入反转和输出反转等,并提供了STM32硬件CRC算法的计算示例,以及如何使计算结果与STM32硬件算法保持一致的宏定义方法。此外,还分享了C程序源代码的下载链接,帮助读者实现CRC校验。
摘要由CSDN通过智能技术生成

CRC即循环冗余校验码(Cyclic Redundancy Check),是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

 

CRC算法参数模型解释:

NAME:参数模型名称。

WIDTH:宽度,即CRC比特数。

POLY:生成项的简写,以16进制表示。例如:CRC-32即是0x04C11DB7,忽略了最高位的"1",即完整的生成项是0x104C11DB7。

INIT:这是算法开始时寄存器(crc)的初始化预置值,十六进制表示。

REFIN:待测数据的每个字节是否按位反转,True或False。

REFOUT:在计算后之后,异或输出之前,整个数据是否按位反转,True或False。

XOROUT:计算结果与此参数异或后得到最终的CRC值。

 

常见CRC参数模型如下:

CRC算法名称

多项式公式

宽度

多项式

初始值

结果异或值

输入值反转

输出值反转

CRC-4/ITU

4+x+1

4

03

00

00

true

true

CRC-5/EPC

4+x3+1

5

09

09

00

false

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值