发表于:2007/6/29 11:31:00
#0楼
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是个什么值???
小弟再次 表示感谢!!!!!!!!!!!!!
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是个什么值???
小弟再次 表示感谢!!!!!!!!!!!!!