关于crc数据娇艳的问题,我不知道发在哪里,就发这儿了
大概意思是这样的,mfc编程,串口接收到一串数据,后面两位是校验。
接收数据后要通过校验码判断数据是否正确。
该怎么做?
[解决办法]
最简单的方法是检验和,把前面的数据加起来,取低两个字节,放到最后。优点是简单,高效。缺点是不能纠正数据。
比较好的方法是把数据按二进制排成方阵,纵横两个方向计算每一位的奇偶性,结果存到后面,如果出现错误能定位到第几行几例,能纠正数据。计算机的内存和硬盘校验就是用的这种方法,不过是三维的。
另外引深说几句,标准串口协议中有一个校验位,自定义的通讯协议也有一定的格式要求,如命令字,数据字等等。在串口实际编程实践中,数据本身出错的可能性极小,按以上两点处理,完全可以排错误数据。
[解决办法]
要看它的协议,是那几个字节CRC,CRC也分好几种,最快的是查表法