在这里不对CRC的原理做过多的介绍,只介绍具体的算法实现。
CRC16的多项式码为X16+X15+X2+1,二进制表示为1 1000 0000 0000 0101,对应的十六进制为8005(因为CRC16是两个字节,所以最高位忽略掉了)。
具体计算方法为:
1、设置CRC寄存器,给其赋值0xffff;
2、将待校验数据的第一个字节(8bit)与16位CRC的低字节进行异或操作,结果存入CRC寄存器;
3、CRC寄存器向右移一位,MSB补零,移出并检查LSB;
在这里不对CRC的原理做过多的介绍,只介绍具体的算法实现。
CRC16的多项式码为X16+X15+X2+1,二进制表示为1 1000 0000 0000 0101,对应的十六进制为8005(因为CRC16是两个字节,所以最高位忽略掉了)。
具体计算方法为:
1、设置CRC寄存器,给其赋值0xffff;
2、将待校验数据的第一个字节(8bit)与16位CRC的低字节进行异或操作,结果存入CRC寄存器;
3、CRC寄存器向右移一位,MSB补零,移出并检查LSB;