在使用宏命令进行变量定义的时候发现技术手册上给的unsigned char和unsigned int都不能使用,编译时提示“C1 ,此项多了或少了一个符号”不知道是什么原因,请教版主啊
在使用CRC校验的时候发现CRC的校验码和单片机机的检验码不一致,不能使用,而使用RTU设备直接控制单片机的时候就能通信,请问版主8000里的CRC是CRC CCITT还是CRC_16?能不能贴出相应的程序呢?(单片机的CRC校验采用的查表法)
附程序:
uint crc16(uchar *puchMsg,uchar usDataLen) // puchMsg message to calculate CRC upon {
// usDataLen quantity of bytes in message
uchar uchCRCHi = 0xFF ; // high byte of CRC initialized
uchar uchCRCLo = 0xFF ; // low byte of CRC initialized
uint uIndex ; // will index into CRC lookup table
while (usDataLen--) // Pass through message buffer
{
uIndex = uchCRCHi ^ *puchMsg++ ; // calculate the CRC
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;
uchCRCLo = auchCRCLo[uIndex] ;
}
return (((uint)(uchCRCLo) << 8) | uchCRCHi) ;
}(表略) |