OpenEdv-开源电子网

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

STM32 RS485多机通信问题,从机无法同时接收启动命令

[复制链接]

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2020-5-20
在线时间
34 小时
发表于 2021-7-22 18:36:09 | 显示全部楼层 |阅读模式
5金钱
我使用4个STM32F1作为从机,PC端做主机,第一次PC端发送启动信号S,4个从机能同时响应启动,然后主机分别发送A,B,C,D用于轮询从机发送数据,当我再次发送启动信号S的时候,只有D能响应启动,再发一次S,其余三个从机才能响应启动,请问这是什么原因导致的?谢谢!!!!

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

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-7-22 20:29:41 | 显示全部楼层
位置互换一下试试。示波器测量从机端的信号看是否在规定差分范围内。如果信号正常,那就重点检查代码,不光是主机的,还有从机的。发送S的时候是不是从机应答了,若4个同时应答会出现问题。如果信号不正常检查上下拉电阻,还有最末端的负载电阻。
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2020-5-20
在线时间
34 小时
 楼主| 发表于 2021-7-22 20:50:10 | 显示全部楼层
c2007s 发表于 2021-7-22 20:29
位置互换一下试试。示波器测量从机端的信号看是否在规定差分范围内。如果信号正常,那就重点检查代码,不光 ...

主机我是直接用串口助手发送的启动指令S,每个从机我都用了负载电阻,如果我轮询的顺序是A,D,B,C的话,就是C能接收到启动指令S,再发一次其余三个才能接收到S。
就很奇怪,总结一下就是轮询的最后一个从机可以接受到指令,其余三个要再发送一次S才能接收到启动信号,从机们接收到S是不做应答的,只在自己STM32内部做一些采样操作,然后轮询发送数据给上位机,我想做的只是想让从机们同时启动采样。。。。
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2020-5-20
在线时间
34 小时
 楼主| 发表于 2021-7-22 20:50:50 | 显示全部楼层
顶一下!!!!!
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13104
金钱
13104
注册时间
2012-11-26
在线时间
3811 小时
发表于 2021-7-22 21:09:49 | 显示全部楼层
找四台电脑一起debug一下不得了?
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4894
金钱
4894
注册时间
2015-1-10
在线时间
612 小时
发表于 2021-7-23 09:59:37 | 显示全部楼层
你设个广播地址呗,比如0xFF,从机除了响应自己的地址指令外,也响应广播地址,广播地址只用来主机对从机的设置,从机不回传任何指令,感觉你用CAN来做更合适一点
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2020-5-20
在线时间
34 小时
 楼主| 发表于 2021-7-23 14:52:43 | 显示全部楼层
阿侑kevin 发表于 2021-7-23 09:59
你设个广播地址呗,比如0xFF,从机除了响应自己的地址指令外,也响应广播地址,广播地址只用来主机对从机的 ...

好的,谢谢!!
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2020-5-20
在线时间
34 小时
 楼主| 发表于 2021-7-23 14:53:23 | 显示全部楼层
jermy_z 发表于 2021-7-22 21:09
找四台电脑一起debug一下不得了?

哈哈,这个方法太硬核了
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13104
金钱
13104
注册时间
2012-11-26
在线时间
3811 小时
发表于 2021-7-23 14:57:56 | 显示全部楼层
287875405 发表于 2021-7-23 14:53
哈哈,这个方法太硬核了

还要看你的终端电阻用的对不对
学无止境
回复

使用道具 举报

13

主题

271

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5387
金钱
5387
注册时间
2017-8-14
在线时间
248 小时
发表于 2021-8-9 11:38:19 | 显示全部楼层
建议 用 CAN 总线,价格 差不多,性能 就天壤之别了,我们可以提供开发板  及源程序的
详细见:

http://www.openedv.com/forum.php ... d=283040&extra=

详细资料扣扣群204408503自行下载
回复

使用道具 举报

9

主题

121

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1611
金钱
1611
注册时间
2014-7-8
在线时间
173 小时
发表于 2021-8-9 16:25:05 | 显示全部楼层
单独一台台调试,调试没问题(多发几次),在把4个板子连起来
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 04:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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