/CRC16校验在通讯中应用广泛,这里不对其理论进行讨论,只对常见的3种
//实现方法进行测试。方法1选用了一种常见的查表方法,类似的还有512字
//节、256字等查找表的,至于查找表的生成,这里也略过。
// ---------------- POPULAR POLYNOMIALS ----------------
// CCITT: x^16 + x^12 + x^5 + x^0 (0x1021)
// CRC-16: x^16 + x^15 + x^2 + x^0 (0x8005)
#define CRC_16_POLYNOMIALS 0x8005
// --------------------------------------------------------------
// CRC16计算方法1:使用2个256长度的校验表
// --------------------------------------------------------------
const BYTE chCRCHTalbe[] = // CRC 高位字节值表
{
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,<