梳理:串口、 UART、TTL、RS232、RS422、RS485关系
串口是一个泛称,UART、RS232、RS422和RS485都遵循类似的通信时序协议,被通称为串口。

UART是STM32的UART外设,由此产生串口时序,产生的电平为CMOS电平 。
TTL、RS232、RS422、RS485是串行通信接口标准。简单来说,就是逻辑1和0的表示不同。

RS485介绍
RS485是串行通信标准,使用差分信号传输,抗干扰能力强,常用于工控领域。
RS485具有强大的组网功能,在串口基础协议之上还制定MODBUS协议。
串口基础协议:仅指封装了基本数据包格式的协议(基于数据位)
MODBUS协议:使用基本数据包组合成通讯帧格式的高层应用协议(基于数据包或字节)

RS485总线连接图

RS485通信电路

485****通信波形图

RS485相关HAL****库驱动介绍

RS485****配置步骤
1,配置串口工作参数
HAL_UART_Init()
2,串口底层初始化
配置GPIO、NVIC、CLOCK等
3,开启串口异步接收中断
__HAL_UART_ENABLE_IT()
4,设置优先级,使能中断
HAL_NVIC_SetPriority()、 HAL_NVIC_EnableIRQ()
5,编写中断服务函数
USARTx_IRQHandler(),HAL_UART_Receive()
6,串口数据发送
USART_DR, HAL_UART_Transmit()