STM32F4学习笔记6——USART Part1

本文介绍了STM32F4的USART功能,包括USART的同步异步通信、波特率设置、数据帧格式、停止位配置、中断字符与空闲帧的处理,以及错误检测和过采样技术的选择。详细阐述了USART的初始化步骤和数据发送与接收的过程,对开发基于STM32F4的串口通信提供了实用指导。
摘要由CSDN通过智能技术生成

USART又叫通用同步异步收发器,塔提供了一种灵活的方法与工业使用标准NRZ异步春航数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范以及调制解调器(CTS/RTS)操作,它还允许多处理器通信,使用多换成器配置的DMA方式,可以实现高速数据通信。
USART寄存器控制框图如下
USART框图

可通过对 USART_CR1 寄存器中的 M 位进行编程来选择 8(置0) 位或 9(置1) 位的字长。TX 引脚在起始位工作期间处于低电平状态。在停止位工作期间处于高电平状态。
空闲字符可理解为整个帧周期内电平均为“1”(停止位的电平也是“1”),该字符后是下一个数据帧的起始位。
停止字符可理解为在一个帧周期内接收到的电平均为“0”。发送器在中断帧的末尾插入 1 或 2 个停止位(逻辑“1”位)以确认起始位。
发送和接收由通用波特率发生器驱动,发送器和接收器的使能位分别置 1 时将生成相应的发送时钟和接收时钟。
USART字符说明

字符发送
USART 发送期间,首先通过 TX 引脚移出数据的最低有效位。该模式下,USART_DR 寄存 器的缓冲区 (TDR) 位于内部总线和发送移位寄存器之间。
每个字符前面都有一个起始位,其逻辑电平在一个位周期内为低电平。字符由可配置数量的停止位终止。
USART 支持以下停止位:0.5(智能卡模式下接收数据使用)、1(默认)、1.(智能卡模式下发送与接收使用)5 和 2(正常USART模式,单线模式和调制解调器模式支持该值) 个停止位。
注意:数据发送期间不应复位 TE 位。发送期间复位 TE 位会冻结波特率计数器,从而将损坏 TX 引 脚上的数据。当前传输的数据将会丢失。
使能 TE 位后,将会发送空闲帧。

停止位的配置
可配置的停止位
步骤:
1.通过向 USART_CR1 寄存器中的 UE 位写入 1 使能 USART。
2. 对 USART_CR1 中的 M 位进行编程以定义字长。
3. 对 USART_CR2 中的停止位数量进行编程。
4. 如果将进行多缓冲区通信,请选择 USART_CR3 中的 DMA 使能 (DMAT)。按照多缓冲区 通信中的解释说明配置 DMA 寄存器。
5. 使用 USART_BRR 寄存器选择所需波特率。
6. 将 USART_CR1 中的 TE 位置 1 以便在首次发送时发送一个空闲帧。
7. 在 USART_DR 寄存器中写入要发送的数据(该操作将清零 TXE 位)。为每个要在单缓 冲区模式下发送的数据重复这一步骤。
8. 向 USART_DR 寄存器写入最后一个数据后,等待至 TC=1。这表明最后一个帧的传送已 完成。禁止 USART 或进入暂停模式时需要此步骤,以避免损坏最后一次发送。

单字节通信
始终通过向数据寄存器写入数据来将 TXE 位清零。
TXE 位由硬件置 1,它表示:
● 数据已从 TDR 移到移位寄存器中且数据发送已开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值