CRC-8/MAXIM的多项式公式为:x8 + x5 + x4 + 1 表示:1 0011 0001 值为0x131 CRC-16/CCITT的...
下面是通过逐个字节引入方式计算CRC的代码实现,假设校准使用的多项式为x8+x5+x4+1 (对应二进制为: 0b100110001,对应HEX值为0x131)。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 /*** *@DESCRIPTION: -- CRC8计算, * *@Parameters: -- *data_ptr:待计算CRC8的数据 * len:待计算CRC8数据的长度...
1、 CRC8标准生成多项式 CRC-8 x8+x5+x4+1 0x31(0x131) CRC-8 x8+x2+x1+1 0x07(0x107) CRC-8 x8+x6+x4+x3+x2+x1 0x5E(0x15E) 1. 2. 3. 注:由于多项式的最高为都为1,并且在代码的crc8计算中,最高位也是不使用的, 所以在多项式记录时都去掉了最高位。 2、 CRC校验算法,说白了,就是...
这就与所选的固定除数有关了,左移位数比除数的位数少1,下面是常用标准中的除数: CRC8:多项式是X8+X5+X4+1,对应的数字是0x131,左移8位 CRC12:多项式是X12+X11+X3+X2+1,对应的数字是0x180D,左移12位 CCITT CRC16:多项式是X16+X12+X5+1,对应的数字是0x11021,左移16位 ANSI CRC16:多项式是X16+X15+...
1、在待求CRC原始数据1后面补充8个0变成100000000后,再除以生成多项式,本问题为100110001,注意其中1的位置从右向左,即为生成多项式的次数2、模2除法得到110001,不足原始生成多项式的8位,于是左边补0到8位得到00110001,将此数附在原始数据之后,用于检查是否能被生成多项式整除,当然,其中的除法使用的还是模2除法....
1.CRC8校验的一般性算法: 例如: 信息字段代码为: 00000001 00000010 ——— 对应m(x)=x8+x 生成多项式为:g(x)=x8+x5+x4+1 ——— 对应g(x)的二进制代码为:100110001 现在我们将要对2字节数据0x0102生成CRC8校验码,并最终将生成的1字节CRC校验码跟在0x0102的后面,即 0x01 02 ##,(##即8为CRC码)...
CRC-8 x8+x5+x4+1 0x31(0x131) CRC-8 x8+x2+x1+1 0x07(0x107) CRC-8 x8+x6+x4+x3+x2+x1 0x5E(0x15E) 注:由于多项式的最高为都为1,并且在代码的crc8计算中,最高位也是不使用的, 所以在多项式记录时都去掉了最高位。 2、 CRC校验算法,说白了,就是把需要校验的数据与多项式进行循环异或(XO...
假设生成多项式为:g(x)=x4+x3+1;则对应g(x)的代码为: 11001 x4m(x)=x10+x8+x7+x4 对应的...
*Name: CRC-8 x8+x5+x4+1 * Poly: 0x31 * Init: 0xFF * Refin: False * Refout: False * Xorout: 0x00 */ #define POLYNOMIAL 0x131 //100110001 uint8_t MY_I2C_CRC8(uint8_t data[], uint8_t length) { uint8_t bit; // bit mask ...
CRC8:多项式是X8+X5+X4+1,对应的数字是0x131,左移8位 CRC12:多项式是X12+X11+X3+X2+1,对应的数字是0x180D,左移12位 CCITT CRC16:多项式是X16+X12+X5+1,对应的数字是0x11021,左移16位 ANSI CRC16:多项式是X16+X15+X2+1,对应的数字是0x18005,左移16位 ...