////函数功能:生成CRC校验码
////本代码中使用查表法,以提高运算速度
/****************************************************************************/
uint16 crc16(uint8 *puchMsg, uint16 usDataLen)
{
uint8 uchCRCHi=0xFF; /* 高CRC字节初始化 */
uint8 uchCRCLo=0xFF; /* 低CRC 字节初始化 */
uint16 uIndex; /* CRC循环中的索引 */
while (usDataLen--) /* 传输消息缓冲区 */
{
uIndex = uchCRCHi ^ *puchMsg++; /* 计算CRC */
uchCRCHi=uchCRCLo ^ auchCRCHi[uIndex];
uchCRCLo=auchCRCLo[uIndex];
}
return (uchCRCLo << 8 | uchCRCHi);
}//uint16 crc16(uint8 *puchMsg, uint16 usDataLen)
|