标题: 关于RS485通信发送数据断行问题 [打印本页]

作者: zyftank    时间: 2023-6-18 16:07
标题: 关于RS485通信发送数据断行问题
采用http://www.51hei.com/bbs/dpj-23230-1.html这篇文章的方法,可以实现RS485的通信,但是有个问题,作为485的下位机,发送的数据经常会碰到一次发送的数据分两两行发送。开始我以为是定时器中断的引起的,但我在发送数据的时候关掉定时器中断,也没能解决这个问题。


这是通过串口走485线路时发生的问题,如果还是使用这个程序,切换到串口和上位机进行通信,发送数据就不会出现断行现象。

作者: 人中狼    时间: 2023-6-18 22:02
有没有考虑过这个现象是串口助手软件的问题呢
作者: Hephaestus    时间: 2023-6-19 06:43
你的串口软件有问题。MODBUS/RTU是3.5字节空闲时间表示一个帧的结束,你的串口软件可能小于这个时间。
作者: yzwzfyz    时间: 2023-6-19 08:04
两种方式所产生的结果不同,查查两者的协议,有何区别。
作者: TTQ001    时间: 2023-6-19 09:03
Modbus 发送请求的确切字节。 所以它不应该把数据分成两部分。
作者: rctty    时间: 2023-6-19 14:34
一般是你这个测试助手问题,串口收发数据并没有“行”的概念,应该是助手认为接收结束了,但实际并没有结束
作者: zyftank    时间: 2023-6-20 14:58
人中狼 发表于 2023-6-18 22:02
有没有考虑过这个现象是串口助手软件的问题呢

不一定是串口助手的问题,我通过串口发送数据时,上位机接收的工具也是串口助手软件,但是并没发生上面的状况。
作者: yxtao    时间: 2023-6-20 15:25
我用qt开发上位机的时候就遇到这个问题,长数据接收经常会被分成两个包接收到,我后来是在上位机加了数据包长度检测,只能说治标不治本,也能凑合用





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1