搜索
bottom↓
回复: 12

RS485调试心得分享

[复制链接]

出0入0汤圆

发表于 2017-2-20 20:48:04 | 显示全部楼层 |阅读模式
最近在调试RS485总线
分享一下心得:
对于RS485调试的经验是RS485总线是半双工通信。也就是说在同一时刻总线上只能有一个设备在发送数据有效。
如果在同一时刻,主 从两个设备同时占用总线,则其他接收端接收到的数据会收到干扰,接收数据不正确。
所以尽量避免两个设备同时占用总线。
调试主设备时:为保证RS485上通信稳定,主设备在往总线上发送数据之前,首先要在RS485芯片方向控制引脚置位,将RS485总线切换成主设备发送状态。切换方向后,为保证通信稳定加上1ms的延时,在主设备最后一个字节数据发送完成后,也要加上1ms后,再切换为接收态。
调试从设备时:也一样在发送数据之前要加1ms延时,在最后一个字节数据发送完成之后,也要加上1ms延时再切换为接收态,确保通信稳定。

主从设备一起调试时:
注意一定要避免  主设备发送完数据切换为接收态和从设备接收后切换为发送态之间产生冲突。我在调试的时候,主从两个设备同时占用了总线,导致总线上的数据产生了冲突,导致主设备不能完整收到从设备发出的数据。
避免冲突:一定在从接收到从发送的数据后,切换为发送态之前加上1ms延时,具体时间长短跟主设备发出的数据长度有关。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2017-2-20 21:16:50 来自手机 | 显示全部楼层
发送和接收切换从来不加延时的路过!在切换时判断寄存器是否为空就切换

出0入22汤圆

发表于 2017-2-20 21:18:45 来自手机 | 显示全部楼层
pangbin4 发表于 2017-2-20 21:16
发送和接收切换从来不加延时的路过!在切换时判断寄存器是否为空就切换

可能是你的蛋骗鸡速度比较慢,不等待都没问题。

出10入0汤圆

发表于 2017-2-20 22:40:39 来自手机 | 显示全部楼层
zxq6 发表于 2017-2-20 21:18
可能是你的蛋骗鸡速度比较慢,不等待都没问题。

stm32+zlg485模块也是不加延时,一直稳定

出5入14汤圆

发表于 2017-2-21 08:45:38 | 显示全部楼层
不管光耦是否有滞后,如果发送光耦和切换光耦速度一致或比切换光耦快,从逻辑上分析都没必要延时 ...... 至于高速光耦或不用光耦就没必要延时了!...... 所以综合来看,不管发送还是接受,延时都是多此一举!

出5入14汤圆

发表于 2017-2-21 08:47:23 | 显示全部楼层
pangbin4 发表于 2017-2-20 21:16
发送和接收切换从来不加延时的路过!在切换时判断寄存器是否为空就切换

你这个有问题 —— 寄存器为空并不等于发送结束(特别是发送寄存器,很多单片机此时至少还有一个字节没发送),这个时候就切换,最后一个字节是发不出去的!

出0入0汤圆

发表于 2017-2-21 09:13:44 | 显示全部楼层
EMC菜鸟 发表于 2017-2-21 08:47
你这个有问题 —— 寄存器为空并不等于发送结束(特别是发送寄存器,很多单片机此时至少还有一个字节没发 ...

对于串口寄存器中有的中断有发送完成事件的,就使用该标志位就可以,如果没有,则要根据所使用的波特率来确定延时多久。而不是一味地单纯延时1ms。

出0入0汤圆

 楼主| 发表于 2017-2-21 09:25:44 | 显示全部楼层
wzd5230 发表于 2017-2-21 09:13
对于串口寄存器中有的中断有发送完成事件的,就使用该标志位就可以,如果没有,则要根据所使用的波特率来 ...

说的对,我的波特率是9600,测试发一个字节是1ms

出0入0汤圆

发表于 2017-2-21 09:29:38 | 显示全部楼层
谢谢楼主的485经验分享。顶!

出0入0汤圆

发表于 2017-2-21 10:02:26 | 显示全部楼层
很好的分享,占一个

出0入0汤圆

发表于 2017-2-21 10:26:20 | 显示全部楼层
我不知道别人,但是我用的时候加了延时,不加延时会出现乱码或者莫名其妙的问题,我加的延时不是1ms而是发送一个字节所用时间的1.2倍!

出0入0汤圆

发表于 2017-4-7 15:20:29 | 显示全部楼层
谢谢楼主,必须顶一下

出0入0汤圆

发表于 2017-4-11 13:43:06 | 显示全部楼层
恩,485通信特别要注意最后一个数据发送的情况
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 06:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表