打印
[APM32F1]

RS485方向转换引脚大家都怎么实现的?串口完成中断不好使

[复制链接]
280|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
亿年回响|  楼主 | 2025-5-31 09:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RS485方向转换引脚大家都怎么实现的?串口完成中断不好使
APM32F103芯片是的Uart外设没有实现RS485方向引脚的硬件控制,所以要使用软件控制的方式。我在使用串口发送完成中断触发后,在中断处理函数里面做方向切换,我发现存在一定的概率RS485数据发送不完全,即丢失最后一个字节的数据。
但如果我在发送完成中断后延迟1ms,则RS485的数据发送正常,而且稳定。
这1ms的延迟对我的项目的影响几乎没有,所以项目现在正常推进,但我想了解一下大家如何处理?我本身不希望添加这种延迟在系统里面。
先谢谢各位了



使用特权

评论回复
沙发
星云避风港| | 2025-5-31 14:39 | 只看该作者
要添加延迟。
中断完成只得是MCU已完成,并不是指得数据发送完成。

使用特权

评论回复
板凳
OceanGaze| | 2025-6-3 19:16 | 只看该作者
我是通过状态机的方式来处理。
不让两次发送背靠背就行了。

使用特权

评论回复
地板
chenjun89| | 2025-6-4 08:15 | 只看该作者
可以由软件控制,也可以靠硬件自动实现。

使用特权

评论回复
5
HeartbeatEcho| | 2025-6-4 16:23 | 只看该作者
使用自动切换的电路来设计。
在低速率下面效果不错的。

使用特权

评论回复
6
座机呀| | 2025-6-4 22:32 | 只看该作者
最理想的是用硬件定时器延时3.5T
定时器不富裕的话就用软件定时器,适合9600这种慢速的
我一般都用TC中断执行IO口置低的回调,38400波特率没什么问题

使用特权

评论回复
7
weifeng90| | 2025-6-5 08:01 | 只看该作者
可以直接利用收发信号实现硬件方向的收发控制,不一定需要MCU专门的硬件控制IO的。

使用特权

评论回复
8
SpiritSong| | 2025-6-5 09:52 | 只看该作者
座机呀 发表于 2025-6-4 22:32
最理想的是用硬件定时器延时3.5T
定时器不富裕的话就用软件定时器,适合9600这种慢速的
我一般都用TC中断执 ...

没有必要延时这么久吧

使用特权

评论回复
9
SpiritSong| | 2025-6-5 09:54 | 只看该作者
发送前检查总线状态。
即在发送完成后,人为添加延时标志位。

使用特权

评论回复
10
座机呀| | 2025-6-5 16:15 | 只看该作者
SpiritSong 发表于 2025-6-5 09:52
没有必要延时这么久吧

搞混了,搞成断包了

使用特权

评论回复
11
幻影书记| | 2025-6-5 16:34 | 只看该作者
对于F103这种没有RS485驱动引脚控制的MCU,还是尽量使用自动收发切换电路。
做隔离设计时,也省一个隔离引脚

使用特权

评论回复
12
latera| | 2025-6-7 23:23 | 只看该作者
发送结束,先延时一下

使用特权

评论回复
13
jobszheng| | 2025-6-9 14:24 | 只看该作者
115200波特率 可以使用自动切换电路的方案来实现

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

粉丝