#include "CRC16.h" unsigned short CRC16(unsigned char *puchMsg, unsigned short usDataLen) { unsigned char uchCRCHi = 0xFF; /* 高CRC 字节初始化*/ unsigned char uchCRCLo = 0xFF; /* 低CRC 字节初始化*/ unsigned int uIndex; /* CRC 循环中的索引*/ while (usDataLen--) /* 传输消息缓冲区*/ { uIndex = uchCRCHi ^ *puchMsg++; /* 计算CRC */ uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex]; uchCRCLo = auchCRCLo[uIndex]; } return (((unsigned short)uchCRCHi << 8u) | uchCRCLo); }