code unsigned char auchCRCHi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,....
code unsigned char auchCRCLo[] = {0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,0x05, 0xC5, 0xC4,....
unsigned short int CRC16(unsigned char *puchMsg,unsigned short usDataLen) {unsigned char uchCRCHi;unsigned char uchCRCLo;unsigned char uIndex ; uchCRCHi=0xFF ; /* CRC 的高字节初始化 */ ********** uchCRCLo=0xFF ; /* CRC 的低字节初始化 */ ********** while (usDataLen--) /* 完成整个报文缓冲区 */ {uIndex = uchCRCLo^*puchMsg++ ; /* 计算 CRC */ ??????--1 uchCRCLo = uchCRCHi^auchCRCHi[uIndex] ; ???????--2 uchCRCHi = auchCRCLo[uIndex] ;} ???????--3 return (uchCRCHi << 8 | uchCRCLo) ;} ???????--4
我的问题: 1.auchCRCHi[] ,auchCRCLo[] 中:对应的数值是最终的CRC值吗??如不是是什么值?? 2.*号处,初值为0可以吗?? 3.(主要的)问号处,能详细的解释下这四行吗??uIndex是个什么值??? 小弟再次 表示感谢!!!!!!!!!!!!!
|