|
@@ -35,20 +35,18 @@ static unsigned short ccitt_table[256] = {
|
|
|
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
|
|
|
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
|
|
|
};
|
|
|
-
|
|
|
unsigned short do_crc(unsigned char *q, int len)
|
|
|
{
|
|
|
unsigned short crc = 0;
|
|
|
|
|
|
while (len-- > 0)
|
|
|
- crc = ccitt_table[(crc >> 8 ^ *q++) & 0xff] ^ (crc << 8);
|
|
|
+ crc = ccitt_table[((crc >> 8) ^ *q++) & 0xff] ^ (crc << 8);
|
|
|
|
|
|
return crc;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
-
|
|
|
----------------------------------------------
|
|
|
--功能: 字节查表法求CRC
|
|
|
---------------------------------------------
|
|
@@ -67,4 +65,23 @@ uint16_t do_crc(unsigned char *ptr,int len) // 字节查表法求CRC
|
|
|
}
|
|
|
return(crc);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ uint16_t do_crc(uint8_t* pbtData, int nLength)
|
|
|
+ {
|
|
|
+ //查表(crc_Table)法求CRC
|
|
|
+ uint8_t tda;
|
|
|
+ uint16_t crc = 0;
|
|
|
+ int i = 0;
|
|
|
+ while (i < nLength)
|
|
|
+ {
|
|
|
+ tda = (uint8_t)(crc / 256); // 以8 位二进制数暂存CRC 的高8 位
|
|
|
+ crc <<= 8; // 左移8 位
|
|
|
+ crc ^= ccitt_table[tda^pbtData[i++]]; // 高字节和当前数据XOR 再查表
|
|
|
+ }
|
|
|
+
|
|
|
+ return(crc);
|
|
|
+ }
|
|
|
*/
|
|
|
+
|
|
|
+
|