单片机学习小组
登录
直播中
莫联雪
7年用户
1098经验值
私信
关注
USART和RS232/RS-422/RS485的关系是什么?
开启该帖子的消息推送
单片机
uart
串口通信
USART和RS232/RS-422/RS485的关系是什么?
STM32
-USART
通信
步骤是怎样的?
USART通信编程流程是怎样的?
回帖
(1)
刘海欢
2022-2-16 10:15:48
USART其实就是一种通信协议,用于进行数据交换。
UART与USART:
UART:通用异步收发器
USART:通用同步异步收发器
在单片机中,名称为UART的接口一般只能用于异步串行通讯,
而名称为USART的接口可以用于同步串行通讯和异步串行通讯。可以理解UART是USART的剪裁版,只支持异步通信。
UART是
全双工异步通信
,可以同时收发数据。
同步通信:指通信双方共用一个时钟,通信双方有共同的SCLK时钟线(IIC、SPI)
异步通信:通信双方的时钟独立分开,通信双方无SCLK时钟线(USART)
UART通信双方必须采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(Rx 和Tx)就可以完成通信过程。
USART和RS232、RS-422、RS485的关系:
首先说一下RS-232、RS-422、RS-485
不是通讯协议
,它们仅是关于UART通讯的一个机械和电气接口标准(顶多是网络协议中的物理层面)。
也就是说RS232、RS-422、RS485是基于UART通信协议的通信的,它们只是一些接口标准,通常实现RS232、RS-422、RS485通信需要另外搭建转换电路。
STM32F407ZGT6 的串口资源相当丰富的可提供
6 路串口
,通用同步异步收发器 (USART) 能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。
UART通信协议:
● 发送或接收前保持空闲线路
● 起始位
● 数据位(字长 8 位或 9 位),最低有效位在前 ,最后一位可以是奇偶校验位,也可以采用无奇偶校验的方式。
● 停止位:用于指示帧传输已完成,可以有 0.5 个、1 个、1.5 个、2 个
奇偶校验:
奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。若采用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。
STM32-USART通信步骤:
通过向 USART_CR1 寄存器中的 UE 位写入 1 使能 USART。
对 USART_CR1 中的 M 位进行编程以定义字长。
对 USART_CR2 中的停止位数量进行编程。
如果将进行多缓冲区通信,请选择 USART_CR3 中的 DMA 使能 (DMAT位)。按照多缓冲区
通信中的解释说明配置 DMA 寄存器。
使用 USART_BRR 寄存器选择所需波特率。
将 USART_CR1 中的 TE 位置 1 以便在首次发送时发送一个空闲帧。
在 USART_DR 寄存器中写入要发送的数据(该操作将清零 TXE 位)。为每个要在单缓
冲区模式下发送的数据重复这一步骤。
向 USART_DR 寄存器写入最后一个数据后,等待至 TC=1。这表明最后一个帧的传送已
完成。禁止 USART 或进入暂停模式时需要此步骤,以避免损坏最后一次发送。
USART通信还是比较复杂的,更具体的内容可以看《STM32F4xx中文参考手册》
USART通信编程流程:
串口时钟使能,GPIO 时钟使能。
设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。
GPIO 初始化设置:要设置模式为复用功能。
串口参数初始化:设置波特率,字长,奇偶校验等参数。
开启中断并且初始化 NVIC,使能中断(如果是用中断接收时,才需要开启中断;usart还可以采用查询方式接收)。
使能串口。
编写中断处理函数:函数名格式为 USARTxIRQHandler(x 对应串口号)。
关于USART串口GPIO的配置:
最后还有一个较为重要的操作就是
重定义printf函数
。
由于函数具体操作较多,建议直接看原子哥或火哥的例程。
USART其实就是一种通信协议,用于进行数据交换。
UART与USART:
UART:通用异步收发器
USART:通用同步异步收发器
在单片机中,名称为UART的接口一般只能用于异步串行通讯,
而名称为USART的接口可以用于同步串行通讯和异步串行通讯。可以理解UART是USART的剪裁版,只支持异步通信。
UART是
全双工异步通信
,可以同时收发数据。
同步通信:指通信双方共用一个时钟,通信双方有共同的SCLK时钟线(IIC、SPI)
异步通信:通信双方的时钟独立分开,通信双方无SCLK时钟线(USART)
UART通信双方必须采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(Rx 和Tx)就可以完成通信过程。
USART和RS232、RS-422、RS485的关系:
首先说一下RS-232、RS-422、RS-485
不是通讯协议
,它们仅是关于UART通讯的一个机械和电气接口标准(顶多是网络协议中的物理层面)。
也就是说RS232、RS-422、RS485是基于UART通信协议的通信的,它们只是一些接口标准,通常实现RS232、RS-422、RS485通信需要另外搭建转换电路。
STM32F407ZGT6 的串口资源相当丰富的可提供
6 路串口
,通用同步异步收发器 (USART) 能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。
UART通信协议:
● 发送或接收前保持空闲线路
● 起始位
● 数据位(字长 8 位或 9 位),最低有效位在前 ,最后一位可以是奇偶校验位,也可以采用无奇偶校验的方式。
● 停止位:用于指示帧传输已完成,可以有 0.5 个、1 个、1.5 个、2 个
奇偶校验:
奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。若采用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。
STM32-USART通信步骤:
通过向 USART_CR1 寄存器中的 UE 位写入 1 使能 USART。
对 USART_CR1 中的 M 位进行编程以定义字长。
对 USART_CR2 中的停止位数量进行编程。
如果将进行多缓冲区通信,请选择 USART_CR3 中的 DMA 使能 (DMAT位)。按照多缓冲区
通信中的解释说明配置 DMA 寄存器。
使用 USART_BRR 寄存器选择所需波特率。
将 USART_CR1 中的 TE 位置 1 以便在首次发送时发送一个空闲帧。
在 USART_DR 寄存器中写入要发送的数据(该操作将清零 TXE 位)。为每个要在单缓
冲区模式下发送的数据重复这一步骤。
向 USART_DR 寄存器写入最后一个数据后,等待至 TC=1。这表明最后一个帧的传送已
完成。禁止 USART 或进入暂停模式时需要此步骤,以避免损坏最后一次发送。
USART通信还是比较复杂的,更具体的内容可以看《STM32F4xx中文参考手册》
USART通信编程流程:
串口时钟使能,GPIO 时钟使能。
设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。
GPIO 初始化设置:要设置模式为复用功能。
串口参数初始化:设置波特率,字长,奇偶校验等参数。
开启中断并且初始化 NVIC,使能中断(如果是用中断接收时,才需要开启中断;usart还可以采用查询方式接收)。
使能串口。
编写中断处理函数:函数名格式为 USARTxIRQHandler(x 对应串口号)。
关于USART串口GPIO的配置:
最后还有一个较为重要的操作就是
重定义printf函数
。
由于函数具体操作较多,建议直接看原子哥或火哥的例程。
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机
uart
串口通信
USART
和
RS232
/
RS-422
/
RS485
的
关系
是什么?
2021-12-10
1705
RS485
/
RS422
/
RS232
/TTL具有哪些特性参数?
2022-02-22
2527
RS-232
/
RS-485
/
RS-422
通信接口标准是什么?
2022-02-16
2190
UART/
RS485
/
RS422
/
RS232
到底是什么?
2022-02-16
1555
RS-232
、
RS-422
和S-
485
谁才是UART中的高速公路?
2021-05-19
926
RS-422
与
RS-485
接口的知识点分享
2020-12-28
2235
请问
RS232
怎么转
RS485
电路?
2019-09-12
2609
RS-232
/
RS-422
与
RS-485
通讯方式的区别是什么?
2021-12-08
1513
RS232
和
RS485
转换问题
2014-11-21
8579
RS232
接口与
RS485
通讯接口有何差别
2021-11-10
2619
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分