传输数据时候需要生成8位 CRC校验码。
http://depa.usst.edu.cn/chenjq/www2/software/crc/CRC_Javascript/CRCcalculation.htm
以下为我这边确认可以用的校验代码;
其中CRC polynom 为:0x97.
uint8_t crc8_checksum(uint8_t *ptr,uint8_t len)
{
uint8_t i;
uint8_t crc = 0;
ptr++;
while(len--!=0)
{
for(i=0x80;i!=0;i/=2)
{
if((crc&0x80)!=0)
{
crc*=2;
crc^=0x97;
}
else
crc*=2;
if((*ptr&i)!=0)
crc^=0x97;
}
ptr++;
}
return crc;
}
ptr指向要校验的数组首地址,len为数组的长度。返回值crc为校验码。