OpenEdv-开源电子网

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

关于F103战舰板RS485通讯的问题

[复制链接]

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
发表于 2025-3-14 19:13:22 | 显示全部楼层 |阅读模式
1金钱
1741949897938.jpg 1741949934847.jpg 1741949967655.jpg 各位大佬,本人在做RS485通信程序时,一直不能成功通信,使用的是F103战舰板的USART2,使用同样的程序单独测式USART2串口通信时是可以成功通信的,但一加上485就不行,找不到问题在哪里,请各位大佬指点下,多谢。。。。

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

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2025-3-1
在线时间
0 小时
发表于 2025-3-15 17:00:49 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165390
金钱
165390
注册时间
2010-12-1
在线时间
2112 小时
发表于 2025-3-15 23:11:26 | 显示全部楼层
测量下串口io是否有信号,如果有,看看是否接错线了?
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 2025-3-16 16:36:53 | 显示全部楼层
正点原子 发表于 2025-3-15 23:11
测量下串口io是否有信号,如果有,看看是否接错线了?

用原子战舰板的485例程试过,发现485接口是通的,但用我自已的代码就不通,根本发送不出去
回复

使用道具 举报

2

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2022-4-13
在线时间
50 小时
发表于 2025-3-17 08:26:55 | 显示全部楼层
硬件电路有流控制吗,如果不是自动收发电路,需要手动控制
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 2025-3-17 10:42:04 | 显示全部楼层
65968535 发表于 2025-3-17 08:26
硬件电路有流控制吗,如果不是自动收发电路,需要手动控制

硬件流控制都没有使能,串口接收及发送都已使能,控制的话用的就是485芯片的接收器与发送器的使能引脚,用一个IO控制,但无论是否使能RE或DE引脚都不能通信成功,代码如上,不知道原因在哪
回复

使用道具 举报

12

主题

3369

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8577
金钱
8577
注册时间
2020-5-11
在线时间
3993 小时
发表于 2025-3-17 13:20:51 | 显示全部楼层
所以,PA2到底有没有波形?
专治疑难杂症
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 2025-3-17 19:56:10 | 显示全部楼层
LcwSwust 发表于 2025-3-17 13:20
所以,PA2到底有没有波形?

有波形,而且通过飞线的方式测试PA2直接串口发送是可以通信的,但同样的程序只要走485通信就发不出去,发送控制IO也使能了,485电路测试也是可以通信的,很奇怪,找不到问题
回复

使用道具 举报

12

主题

3369

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8577
金钱
8577
注册时间
2020-5-11
在线时间
3993 小时
发表于 2025-3-18 09:09:33 | 显示全部楼层
KKGG 发表于 2025-3-17 19:56
有波形,而且通过飞线的方式测试PA2直接串口发送是可以通信的,但同样的程序只要走485通信就发不出去,发 ...

"不能成功通信"是与谁通信?有整个系统的电路图没?看看485相关的连接.
485是个8脚芯片吧,测一下在发送数据时它每个脚的波形.
专治疑难杂症
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 2025-3-18 10:12:01 | 显示全部楼层
LcwSwust 发表于 2025-3-18 09:09
"不能成功通信"是与谁通信?有整个系统的电路图没?看看485相关的连接.
485是个8脚芯片吧,测一下在发送数 ...

用的是原子的战舰开发板,与电脑串口工具通信,用原子的485例程程序与电脑串口工具通信过,是可以发送成功的,电脑能接收到数据,证明硬件电路工作正常。应该还是我的程序有问题,但是我找了很久,找不到哪里的问题
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 2025-3-18 10:16:30 | 显示全部楼层
而且我发现了一个很奇怪的问题,用原子485例程程序测试时,使用的是USART2串口连接的485电路,按理说USRAT2与USART1是相互独立的两个串口,但是我把例程里面的打印串口USART1总线时钟失能禁用后,发现485就不能通信了,这是什么原因,我这个问题会不会与这个原因有关?请大神指点迷津
回复

使用道具 举报

12

主题

3369

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8577
金钱
8577
注册时间
2020-5-11
在线时间
3993 小时
发表于 2025-3-18 10:34:40 | 显示全部楼层
KKGG 发表于 2025-3-18 10:16
而且我发现了一个很奇怪的问题,用原子485例程程序测试时,使用的是USART2串口连接的485电路,按理说USRAT2 ...

那还是得测波形,比看代码方便,你看485接口芯片是不是MAX485,就测它每个脚的波形,一看就知道问题在哪了.
别看代码了,说不定在你没发出来的代码里改变了某些设置,或某个地方一个死循环就让程序完蛋了.
关于USART1,你看有没有printf语句,它可能调用fputc函数,然后往USART1发送数据,并等待标志,
如果有,且USART1未工作,那"等待标志"就会陷入死循环.
专治疑难杂症
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 2025-3-18 10:40:13 | 显示全部楼层
LcwSwust 发表于 2025-3-18 10:34
那还是得测波形,比看代码方便,你看485接口芯片是不是MAX485,就测它每个脚的波形,一看就知道问题在哪了.
...

好的,多谢大佬指点,我再查查,
回复

使用道具 举报

34

主题

164

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2018-2-9
在线时间
127 小时
发表于 2025-3-19 11:03:23 | 显示全部楼层
你那个进发送模式、接受模式给你注释掉了欸,取消注释看下呢
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 3 天前 | 显示全部楼层
多谢各位大佬的指点,问题已经解决,是485芯片发送接收控制解的工作模式设置问题,代码中模式设置寄存器手误打错了,仔细看上面代码,就能发现
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-2 01:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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