RS485方向转换引脚大家都怎么实现的?串口完成中断不好使
RS485方向转换引脚大家都怎么实现的?串口完成中断不好使APM32F103芯片是的Uart外设没有实现RS485方向引脚的硬件控制,所以要使用软件控制的方式。我在使用串口发送完成中断触发后,在中断处理函数里面做方向切换,我发现存在一定的概率RS485数据发送不完全,即丢失最后一个字节的数据。但如果我在发送完成中断后延迟1ms,则RS485的数据发送正常,而且稳定。这1ms的延迟对我的项目的影响几乎没有,所以项目现在正常推进,但我想了解一下大家如何处理?我本身不希望添加这种延迟在系统里面。先谢谢各位了要添加延迟。
中断完成只得是MCU已完成,并不是指得数据发送完成。 我是通过状态机的方式来处理。
不让两次发送背靠背就行了。 可以由软件控制,也可以靠硬件自动实现。 使用自动切换的电路来设计。
在低速率下面效果不错的。 最理想的是用硬件定时器延时3.5T
定时器不富裕的话就用软件定时器,适合9600这种慢速的
我一般都用TC中断执行IO口置低的回调,38400波特率没什么问题 可以直接利用收发信号实现硬件方向的收发控制,不一定需要MCU专门的硬件控制IO的。 座机呀 发表于 2025-6-4 22:32
最理想的是用硬件定时器延时3.5T
定时器不富裕的话就用软件定时器,适合9600这种慢速的
我一般都用TC中断执 ...
没有必要延时这么久吧 发送前检查总线状态。
即在发送完成后,人为添加延时标志位。 SpiritSong 发表于 2025-6-5 09:52
没有必要延时这么久吧
搞混了,搞成断包了 对于F103这种没有RS485驱动引脚控制的MCU,还是尽量使用自动收发切换电路。
做隔离设计时,也省一个隔离引脚 发送结束,先延时一下
页:
[1]