unsigned short CRC16(unsigned char *puchMsg, unsigned short usDataLen)/* puchMsg 要进行CRC校验的消息, usDataLen 消息中字节数*/
{
unsigned char uchCRCHi = 0xFF ; /* 高CRC字节初始化*/
unsigned char uchCRCLo = 0xFF ; /* 低CRC 字节初始化*/
unsigned uIndex ; /* CRC循环中的索引*/
while (usDataLen--)
{
uIndex = uchCRCHi ^ *puchMsg++ ; /* 计算CRC */
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;
uchCRCLo = auchCRCLo[uIndex] ;
}
return ((uchCRCHi << 8) | uchCRCLo) ;
}
/* CRC 高位字节值表*/
static unsigned char auchCRCHi[] = {
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,
0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,
0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,
0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,
0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC
CRC16校验
最新推荐文章于 2021-12-13 09:14:48 发布