搜索
bottom↓
回复: 8

AVR 做MODBUS ASCII SLAVE 遇到问题

[复制链接]

出0入0汤圆

发表于 2009-6-7 15:47:31 | 显示全部楼层 |阅读模式
近段时间,再做关于通讯的试验,想用USART0实现MODBUS ASCII SLAVE,还在初级阶段,程序在接收完成后,如LRC校验通过,则将原信息中的LRC校验码改为0x46,0x46,并将整条信息发送出来,执行结果有些怪异,图中红色圈中部分把原信息返回了

串口调试工具结果 (原文件名:串口.JPG)

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

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2013-3-13 15:30:27 | 显示全部楼层
表示看不太懂呀!!

出0入0汤圆

发表于 2011-11-3 19:29:22 | 显示全部楼层
回复【4楼】junmadianzi  
-----------------------------------------------------------------------
我就是数据准备好才发送的,用modbus tester 就会有误码,而timeout== 4000ms 才没有误码,我奇诡的是为什么timeout 会导致误码,到底modbus tester 是怎么判断的。

出0入0汤圆

发表于 2009-6-9 09:11:59 | 显示全部楼层
觉得还是在需要发送前允许发送比较好

出0入0汤圆

 楼主| 发表于 2009-6-9 08:38:52 | 显示全部楼层
还有,我也实现市面上的一款PLC的编程口协议,元件范围比原PLC小些.昨晚刚准备实现01命令,发现各类软元件地址是分散的,各类软元件的地址都要进行范围判断,if/else语句用了有7重,看了其他网友的成功例子,程序量都比较短小,我的方向有问题吗?

出0入0汤圆

 楼主| 发表于 2009-6-8 18:08:48 | 显示全部楼层
今天忙了点,这个问题表面上已经解决了,先前我在刚接收完成就禁止接收,允许发送了,后来改为在分析完接收内容并确定了发送内容才允许发送并送第一个BYTE,这样发送5000条未发现错误。但是,我觉得先前的程序并不存在问题

出0入0汤圆

发表于 2009-6-7 20:46:06 | 显示全部楼层
楼主用的哪的代码?是板上的吗。估计是代码有点问题

出0入0汤圆

发表于 2009-6-7 20:01:39 | 显示全部楼层
两者波特率不一致

出0入0汤圆

 楼主| 发表于 2009-6-7 16:00:15 | 显示全部楼层
出现这种情况是随机的,约有5%的可能性,高手帮忙分析下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-3 18:03

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

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