【STM32】RS485

RS485是常见的串口接口。

大部分图片来源:正点原子HAL库课程

 专栏目录:记录自己的嵌入式学习之路-CSDN博客


目录

1    串口、UART、TTL、RS232、RS422、RS485的关系

1.1    串口

1.2    UART、TTL、RS232、RS422、RS485

1.3    常见串口标准的比较

2    RS485特征

3    通信电路

4    RS485电平转换芯片(以TP8485为例)

5    配置

5.1    相关HAL库函数

5.2    配置步骤


1    串口、UART、TTL、RS232、RS422、RS485的关系

1.1    串口

串口是一个通讯时序的标准,它规定的仅仅是发送的数据位,要有启动位、有效数据位、校验位和停止位,然后启动位是逻辑0,停止位是逻辑1,以及发送时它们的先后顺序这些。

1.2    UART、TTL、RS232、RS422、RS485

UART、TTL、RS232、RS422、RS485之类的是串口的接口标准,我理解为关于电平协议,就是什么电平代表逻辑1,什么电平代表逻辑0等等。STM32输出的原生串口信号是CMOS电平的。

1.3    常见串口标准的比较


2    RS485特征

  • 使用差分信号传输,抗干扰能力强;
    • TTL、CMOS都是直接使用电平电压来构成逻辑1/0,但485使用A、B两线的压差来决定,在485线的电压被改变时,由于两线电压的改变被差分消除,因此抗干扰能力更强;
  • 具有强大的组网功能,在串口基础协议之上还制定MODBUS协议;
    • MODBUS协议:使用基本数据包组合成通讯帧格式的高层应用协议(基于数据包或字节);
  • 接口电平低,不易损坏芯片;
  • 传输效率高;
  • 传输距离远,支持节点多;

3    通信电路

  • RS485与别的串口不同,别的串口需要TX连接另一设备的RX、RX连接另一设备的TX。而485是A线连接A线,B线连接B线;
  • 需要连接匹配电阻以提高稳定性;
  • 芯片的COMS电平或TTL电平需要485收发器(电平转换芯片)进行响应的电平转换;
  • 连接一般使用双绞线以进一步抗干扰;

4    RS485电平转换芯片(以TP8485为例)

  • RS485的电平转换芯片的重要引脚:
  • R19和R22是两个偏置电阻,用来保证总线空闲时,UAB大于0.2V,避免压差不定导致逻辑混乱。
  • 收发的电平情况:

5    配置

5.1    相关HAL库函数

5.2    配置步骤

  • 其实就是和前面的串口基本一致,只不过需要自行配置并使用一个额外的GPIO口来选择485收发器的发送/接收模式;
对于STM32的RS485通信收发,你可以按照以下步骤进行配置和操作: 1. 配置串口模式:选择一个可用的串口作为RS485通信的接口,并将其配置为半双工模式。具体的配置方法可以参考STM32的官方文档或者开发板的用户手册。 2. 配置GPIO引脚:选择两个GPIO引脚作为RS485的控制引脚,一个用于控制发送方向(TX/RX方向),另一个用于控制接收方向(RX/TX方向)。你需要在代码中配置这两个引脚的输入输出模式和电平状态。 3. 初始化串口:使用STM32提供的HAL库或者标准库函数,初始化串口相关的参数,包括波特率、数据位、停止位等。 4. 设置发送和接收使能:通过控制GPIO引脚的电平,选择是发送数据还是接收数据。当要发送数据时,将发送方向引脚设置为发送状态;当要接收数据时,将发送方向引脚设置为接收状态。 5. 发送数据:使用串口发送函数,将要发送的数据通过串口发送出去。 6. 接收数据:使用串口接收函数,从串口接收缓冲区中读取接收到的数据。 需要注意的是,RS485通信是一种差分信号通信方式,要确保发送和接收的电平匹配,并且在发送前要确保接收方处于接收状态,否则数据可能无法正确传输。此外,还需要根据具体的通信协议进行数据的解析和封装。 希望以上信息对你有所帮助!如果你有更多的问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值