本人新手,正在做一个MODBUS协议的485通讯,其中关于CRC16校验一直得不到正确值。厂方给了一个例数:01 03 00 00 00 05 CRC:85 C9。我看到网上关于CRC的算法,就是将信息后面加16个0,然后再对0X18005进行异或计算,我用手算了一下得到了一个CRC值是F8 95。结果和我在单片机上用网上下载的一个函数得出的值相同。本以为是厂方给的例数错了,可是又下载了一个CRC16计算工具,算了一下,结果却是:85 C9。本人现在很迷惑,为什么会出现这种情况,不知道错在哪里,之后在网上又下载了几个程序,可是算出来的值更不一样。求高人指点我可能在哪里犯了什么错误。或者您如果有CRC16的程序,能计算出我给的例数的话,那麻烦您把程序给我一下。感激不尽啊!! |