请教关于RS485通信中校验码有时出现错误问题
问题描述:使用了一个带485通信的仪表,经常出现仪表读回的数据异常表现如下;但有一半时间是完全正确。
如发送:01 03 00 00 00 02 ** **(此处** **是发送端校验码)
返回:01 03 04 00 00 00 00 ** ** (此处** **是返回数据的校验码,数据固定时,此校验码会出现不同)
返回的数据串中数据是正确的,但校验码是错的。造成上位机不得不把数据做无效处理。
在不同的波特率下出错的频率也不尽相同,4800下最少出错。19200最多。
想问这种出错问题可能性在哪?
仪表程序时序有bug的可能性大。 最简单有效的方法:示波器抓波形 程序Bug,485数据发送结束转侦听时延不够。 按照你的描述,仪表是能接收到正确数据的,且能返回数据,只是数据串末尾不对,示波器看看吧,4楼说的是比较常见的情况,数据还未发送完,485方向控制变了,另外注意一下你接收程序处理是否存在问题 波特率不对,或者数据过长 cn.pheral 发表于 2017-3-8 23:59
波特率不对,或者数据过长
数据不长,波特率对的,因为能返回正确的数据,仅仅是返回数据的校验码有时出错! zchong 发表于 2017-3-8 18:52
按照你的描述,仪表是能接收到正确数据的,且能返回数据,只是数据串末尾不对,示波器看看吧,4楼说的是比 ...
谢谢,仅仅是最后的校验码有时出错,我也觉得是仪表本身程序问题。
页:
[1]