OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6386|回复: 12

串口通讯(RS485)怪问题, 不知道有高手能帮忙解答一下吗 ?

[复制链接]

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
发表于 2013-7-5 12:51:25 | 显示全部楼层 |阅读模式
这个鬼问题描述如下 ,  我是用TTL转RS485电平, 试过不同RS485 IC, 都存在这种怪问题.   解决办法是软件避掉.
但始终没找到引起这问题的真正原因.

如下图:  进行MODBUS通讯,  发送16进制命令码, 当发送/接收控制脚由 "发送" 变为 "接收" 后,  永远立刻会收到
一个无效字元 ,  通常为"00" ,  我的朋友也碰到过是"FF" .     总之在收与发转变过程, 老是会多收一位无效码 .

已经非常肯定这绝对是硬件上的问题 .   如果发送完毕, 故意延迟一段时间, 再把控制脚变成接收,  还是无效.
还是会立刻收到这个无效码 .      我想应该很多人碰到过.    只是我想请教有没有人了解真正的原因,  谢谢 !




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

头像被屏蔽

308

主题

400

帖子

0

精华

禁止访问

积分
1185
金钱
1185
注册时间
2011-7-29
在线时间
10 小时
发表于 2013-7-5 13:41:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
 楼主| 发表于 2013-7-5 14:42:55 | 显示全部楼层
便宜的USB 8通道  24MHZ 采样率的 逻辑信号分析器.

随便搜一下都有一堆人在卖 ..

不到50块一个.

分析数字信号很方便.
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-7-5 15:14:31 | 显示全部楼层
回复【3楼】liuje:
---------------------------------
这和一上电收到0x00这个字符 很像
1-1
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-5 15:32:53 | 显示全部楼层
干脆切换完一阵才开启串口接收.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
 楼主| 发表于 2013-7-5 16:14:19 | 显示全部楼层
原子哥说的是软件避掉的方法,  没有错.  也可行.

楼上朋友说的情形也是.   就是相同的怪问题.

只是从硬件角度来说, 不明白为何发生这种问题.

初学者肯定会被这个几乎大家都会碰到的问题给困扰很久, 又查不到问题的.....

但我做了测试,  改变RS485  A,B 两脚的阻抗,  这个硬件问题就没了...

把A/B点再接上一另一个USB转串口线的 A,B 端上....        改变A,B两点压差阻抗.     这个问题就不会再出现喔.
回复 支持 反对

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2013-7-5 16:33:40 | 显示全部楼层
把A/B点再接上一另一个USB转串口线的 A,B 端上....        改变A,B两点压差阻抗.     这个问题就不会再出现喔.???
A/B怎么会直接接在USB转串口的AB上呢,你要确定两边都是485通信哦!!!
回复 支持 反对

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2013-7-5 16:34:41 | 显示全部楼层
而且485通信最好用光耦隔离开!
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
 楼主| 发表于 2013-7-5 16:52:25 | 显示全部楼层
回复【7楼】三叶草:
---------------------------------

呵呵, 是的.   STM32 , USARTx(TTL 转 485)  <--------------> RS485设备
把这个A,B连接点,  再各自并到一条 USB<->RS485转换线的A,B两点上,  当然,  USB串口线要通电插上.
这样就不会多送到这个 "00" 了.           所以我说这可能是分压匹配上的问题.     应该很多人都曾经碰到过的.
回复 支持 反对

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2013-7-5 17:19:18 | 显示全部楼层
所以最好用光耦隔离
回复 支持 反对

使用道具 举报

13

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2013-10-2
在线时间
20 小时
发表于 2014-4-3 17:35:54 | 显示全部楼层
现在我就碰到类似问题。楼主说改变AB之间的电阻?不知用的是多少的阻值? 能否告知,谢谢!
回复 支持 反对

使用道具 举报

13

主题

314

帖子

0

精华

高级会员

Rank: 4

积分
713
金钱
713
注册时间
2012-7-20
在线时间
102 小时
发表于 2014-4-3 17:48:49 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2014-4-4
在线时间
1 小时
发表于 2014-4-4 16:37:30 | 显示全部楼层
我也遇到类似问题,每次总是会接收到一个多余的零字符,很郁闷很老火,如果用软件规避会比较麻烦,因为我们的上层协议刚好开始和结束符是零,我晕
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-13 17:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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