首先应先确定CRC16的多项式。
我使用的是
多项式:CRC-CCITT=x^16+x^12+x^5+1 即:0x11021
利用多项式生成crc的生成表。表较大,不上传。
计算crc校验
unsigned int CrcCheck(unsigned char len,unsigned int *ptr)
{
unsigned int crc = 0;
unsigned char crc_H8;
while( len-- )
{
crc_H8 = (unsigned char)(crc >> 8);
crc = crc << 8;
crc = crc ^ crc_table[ crc_H8 ^ *ptr];
ptr++;
}
return crc;
}
len —要校验的字节数
*ptr —要校验的数组
|