15 lines
471 B
C++
15 lines
471 B
C++
#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);
|
|
} |