OpenEdv-开源电子网

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

请教485和232通信问题

[复制链接]

24

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2014-3-29
在线时间
63 小时
发表于 2019-1-19 13:30:11 | 显示全部楼层 |阅读模式
110金钱
功能需求如下:
TIM图片20190119132045.jpg
电路板A和电路板B是一模一样的板子,里面程序也是一样的,当电路板上的串口RS232接收到指令D时,会从232上发送给电脑上电路板A采集的电压值。
电脑通过USB-RS232的线连接的串口调试助手发送指令‘D’到电路板A,
        然后电路板A上的485接口也发送同样的指令到电路板B,电路板B上的232串口发送到电脑电路板B采集的电压值。
现在的问题是从第一个USB口发送指令功能都正常,两个板子都能返回数据,但是从第二个USB口发送指令就不行了,电路板B能采集到数据,电路板B的485不发送指令给电路板A
请教大家为什么?电路板A的485可以发信号,但是反过来就不行了?
另外,如果两个板子单独用电脑测试485信号都可以发送指令,但接在一起就不行了,百思不得其解

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

使用道具 举报

7

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2011-8-8
在线时间
50 小时
发表于 2019-1-19 13:47:33 | 显示全部楼层
首先你两个板子的程序是一摸一样的这就有点问题,485是主从模式,必须一主多从。
你现在485配置是发送状态还是接收状态??
a向b发送时,a是发送状态 b是接收状态才行。
我猜测你肯定两个都配置成发送状态了。
回复

使用道具 举报

7

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2011-8-8
在线时间
50 小时
发表于 2019-1-19 13:48:42 | 显示全部楼层
一般的485 端口默认都是配置成接收模式,当发送需要时,切换成发送模式,发送完成还切到接收模式,这样才不影响总线。
回复

使用道具 举报

24

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2014-3-29
在线时间
63 小时
 楼主| 发表于 2019-1-19 13:53:46 | 显示全部楼层
snail_dongbin 发表于 2019-1-19 13:47
首先你两个板子的程序是一摸一样的这就有点问题,485是主从模式,必须一主多从。
你现在485配置是发送状态 ...

两个板子都默认为接收状态,单独使用电脑串口调试助手测试的时候都是正确的,但是两个板子接在一起的时候就有问题了,从A发送指令,两个板子都有回应,但是从B发送只有B有回应,A没有回应,我看了一下是485没有发送指令
回复

使用道具 举报

24

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2014-3-29
在线时间
63 小时
 楼主| 发表于 2019-1-19 13:59:09 | 显示全部楼层
snail_dongbin 发表于 2019-1-19 13:48
一般的485 端口默认都是配置成接收模式,当发送需要时,切换成发送模式,发送完成还切到接收模式,这样才不 ...

我是这么配置的啊,而且单独测试都是没有问题的,两个板子连在一起就不发送指令了
回复

使用道具 举报

7

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2011-8-8
在线时间
50 小时
发表于 2019-1-19 14:01:40 | 显示全部楼层
a没有回应
1 可能是b还接收模式,发送不出去。
2 b发送出去了,a还在发送模式,没办法接收。

485发送之后,要切换成接收模式。
回复

使用道具 举报

24

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2014-3-29
在线时间
63 小时
 楼主| 发表于 2019-1-19 14:09:59 | 显示全部楼层
snail_dongbin 发表于 2019-1-19 14:01
a没有回应
1 可能是b还接收模式,发送不出去。
2 b发送出去了,a还在发送模式,没办法接收。

B的确是没有发送出去数,但是不知道为什么没发送出去,我已经转为发送模式了
回复

使用道具 举报

7

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2011-8-8
在线时间
50 小时
发表于 2019-1-19 14:16:04 | 显示全部楼层
这个很简单排查,有设备的直接挂示波器,抓下波形就知道了,没设备就,从单片机的rx tx引出两根线,a rx ->b tx, a tx ->b rx
看看能否正常?芯片坏也有可能只是这个概率很低。
回复

使用道具 举报

24

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2014-3-29
在线时间
63 小时
 楼主| 发表于 2019-1-19 15:07:48 | 显示全部楼层
snail_dongbin 发表于 2019-1-19 14:16
这个很简单排查,有设备的直接挂示波器,抓下波形就知道了,没设备就,从单片机的rx tx引出两根线,a rx -> ...

电路板上485芯片AB没有加上下拉电阻,这个有影响吗?
回复

使用道具 举报

7

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2011-8-8
在线时间
50 小时
发表于 2019-1-19 16:20:37 | 显示全部楼层
本帖最后由 snail_dongbin 于 2019-1-19 16:23 编辑
EVERGREEN 发表于 2019-1-19 15:07
电路板上485芯片AB没有加上下拉电阻,这个有影响吗?

看这个电路,已经批量用了!只看ab后面那部分电路。
屏幕快照 2019-01-19 下午4.07.30.png
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-1-21 14:05:42 | 显示全部楼层
很可能是485总线冲突了,如果软件上不好解决问题,可以考虑用MAX487芯片,和485芯片功能一样,但是芯片可以自动切换收发状态,不需要用程序去控制。程序只要把时序搞清楚,然后向串口一样用就行。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 04:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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