打印
[应用相关]

485总线的收发切换时间(转载)

[复制链接]
3405|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heimaojingzhang|  楼主 | 2019-6-18 13:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用STM32进行485程序设计时,采用中断进行发数,这就意味着在发数的同时还需考虑收发切换时间。先看下程序:

        while (1)
        {       
                Target.HAL.CommonUart.SetWorkingMode(2);
                Target.HAL.CommonUart.SendData(Target.HAL.CommonUart.Buffer, 1);
                Target.Delayms(4);
                Target.HAL.CommonUart.SetWorkingMode(1);
                Target.HAL.WorkingLed.Turn();       
                Target.Delayms(100);
        }


使用特权

评论回复
沙发
heimaojingzhang|  楼主 | 2019-6-18 13:26 | 只看该作者
程序执行完SendData后,会立刻执行后续的语句,如果没有4ms的延时,此时程序就会把485的状态切换到接收状态,则刚才要发送的数据是发送不出去的。

为了能将数据正常发送出去,执行SendData后,需延时1定的时间才可以,到底需要延时多长时间呢?这就要计算执行完SendData后,数据多长时间发送完毕。

我现在设置的串口波特率是2400bps,发送1字节的时间=1/2400*8=3.3ms。这是延时的最短时间,再加上其它的时耗,进行4ms延时比较稳妥。

如果是多个数据,则需用4ms*数据长度,这样就能保证发送的可靠性了。


使用特权

评论回复
板凳
643757107| | 2019-6-18 20:30 | 只看该作者
多谢分享。

使用特权

评论回复
地板
heimaojingzhang|  楼主 | 2019-7-4 15:50 | 只看该作者
非常感谢支持

使用特权

评论回复
5
wowu| | 2019-7-8 11:55 | 只看该作者

非常感谢楼主分享

使用特权

评论回复
6
木木guainv| | 2019-7-8 11:58 | 只看该作者

非常感谢楼主分享

使用特权

评论回复
7
51xlf| | 2019-7-8 21:23 | 只看该作者
收发过程不能同时进行。  

使用特权

评论回复
8
i1mcu| | 2019-7-8 21:23 | 只看该作者
RS-485收发的零延时转换电路  

使用特权

评论回复
9
pmp| | 2019-7-8 21:24 | 只看该作者
发送和接收切换开关需要控制  

使用特权

评论回复
10
mmbs| | 2019-7-8 21:25 | 只看该作者
买到的485转换器的收发切换是硬件自动完成的  

使用特权

评论回复
11
1988020566| | 2019-7-8 21:25 | 只看该作者
自动收发转换电路常用于RS232转RS485模块上

使用特权

评论回复
12
lzbf| | 2019-7-8 21:25 | 只看该作者
RS485传输距离随着波特率越高,其传输距离越短  

使用特权

评论回复
13
youtome| | 2019-7-8 21:26 | 只看该作者
谢谢楼主分享的资料了。      

使用特权

评论回复
14
cemaj| | 2019-7-8 21:26 | 只看该作者
heimaojingzhang 发表于 2019-6-18 13:26
程序执行完SendData后,会立刻执行后续的语句,如果没有4ms的延时,此时程序就会把485的状态切换到接收状态 ...

发送的可靠性很高吗?  

使用特权

评论回复
15
biechedan| | 2019-7-8 21:26 | 只看该作者
heimaojingzhang 发表于 2019-6-18 13:26
程序执行完SendData后,会立刻执行后续的语句,如果没有4ms的延时,此时程序就会把485的状态切换到接收状态 ...

据多长时间发送完毕?      

使用特权

评论回复
16
sanfuzi| | 2019-7-8 21:27 | 只看该作者
谢谢您的资料。     

使用特权

评论回复
17
lzbf| | 2019-7-8 21:27 | 只看该作者
实现UART 转RS485功能了吗?  

使用特权

评论回复
18
51xlf| | 2019-7-8 21:27 | 只看该作者
收发转换需要一定的时间   

使用特权

评论回复
19
1988020566| | 2019-7-8 21:27 | 只看该作者
485可以支持多个设备轮询   

使用特权

评论回复
20
i1mcu| | 2019-7-8 21:27 | 只看该作者
送完毕后需要延时至少4个字节时间  

使用特权

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

本版积分规则

85

主题

4142

帖子

4

粉丝