unsigned short CRC16(unsigned char *puchMsg/* 要进行CRC 校验的消息*/, unsigned short usDataLen /* 消息中字节数*/)
{
xdata unsigned char uchCRCHi = 0xFF ; /* 高CRC 字节初始化*/
xdata unsigned char uchCRCLo = 0xFF ; /* 低CRC 字节初始化*/
xdata unsigned uIndex ; /* CRC 循环中的索引*/
while (usDataLen--) /* 传输消息缓冲区*/
{
uIndex = uchCRCHi ^ *puchMsg++ ; /* 计算CRC */
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;
uchCRCLo = auchCRCLo[uIndex] ;
}
return (uchCRCHi << 8 | uchCRCLo) ;
}
需要源程序,请在网站留言栏留下E-mail.