串口通讯:请教报文里crc16检验

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了串口通讯:请教报文里crc16检验相关的知识,希望对你有一定的参考价值。

报文为(高字节在前):
EB 80 05 DD 01 B1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D6 B0 EB
倒数第二三个字节 :D6 B8 是得出的校验码,现在我不知道怎么算出来的。只有报文,也不知道从哪儿算的,用工具分段测也得不出结果。
下面是另外两个
EB 80 05 DD 01 B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 87 4C EB
EB 80 00 DD 00 00 03 00 00 00 00 00 00 00 00 00 31 00 00 00 00 00 00 19 31 EB
协议大概如下:
startCode:1 Control Unit: 3 AplicationUnit:19 FramChecksum:2 EndCode:1
另一个范例:
EB 00 00 DD 00 02 01 00 00 00 00 00 00 00 00 00 01 0F 04 01 13 27 29 EA 72 EB

参考技术A

是modbus协议的CRC16校验,可以用格西烽火之类的测试软件进行测试和验证。

追问

我用那个工具还是没测出来正确结果。我不知道它从那儿计算的。也不知道用的哪个多项式。您有时间帮忙测下吗?
就针对某一条报文就行。

本回答被提问者和网友采纳

以上是关于串口通讯:请教报文里crc16检验的主要内容,如果未能解决你的问题,请参考以下文章

stm32串口通讯时怎样接收字符串

vb串口通讯中如何将ACK转化为asc码

can口和串口区别?

modbustcp通讯报文有啥用

51单片机MODBUS通讯,RTU中的CRC校验

Linux 串口通讯问题