woshi_ziyu
发表于: 2016-5-25 14:54:11 | 显示全部楼层

通用同步异步收发器(USART)是微控制器的一项最基本的外设,它提供了与其他设备如RFID、GPS、GSM等进行串行通信的硬件。同时USART也是进行调试的很重要的工具。它支持全双工异步通信、同步单向通信、半双工单线通信以及多处理器通信; 还支持 LIN(局域互连网络)、智能卡协议与 IrDA(红外线数据协会) 规范,以及调制解调器操作(CTS/RTS)。

STM32F7共有8个USART,其支持的特性略有不同:

feature.jpg


根据STM32F7参考手册的第31章通用同步异步收发器 (USART)的介绍,相关的寄存器有11个:

1. 控制寄存器 1 (USARTx_CR1)

M1和M0位:设定串行通信的字长,支持7位、8位或9位数据长度。

PCE位:奇偶校验控制使能,设定禁止或使能奇偶校验控制。

PS位:奇偶校验选择,该位用于在使能奇偶校验控制(PCE 位置 1)时选择奇校验或偶校验。

TE位:禁止或使能发送器。

RE位:禁止或使能接收器。

UE位:禁止或使能USART。当UE=0时,USART 预分频器和输出将立即停止,并且丢弃当前操作,当保留USART的配置。

2. 控制寄存器 2 (USARTx_CR2)

SWAP位:当SWAP=0时,按标准引脚排列定义使用 TX/RX 引脚;当SWAP=1时,交换 TX/RX 引脚功能。该设置位在硬件引脚接反时特别有用。

STOP[1:0]位:设置串行通信的停止位,支持0.5、1、1.5和2 个停止位。

3. 控制寄存器 3 (USARTx_CR3)

DMAT位:使能或禁止DMA发送器。

DMAR位:使能或禁止DMA接收器。

4. 波特率寄存器 (USARTx_BRR)

该寄存器包含16位的波特率设定值。

5. 保护时间和预分频器寄存器 (USARTx_GTPR)

GT[7:0]位:用于编程智能卡模式下的保护时间值(以波特时钟周期数为单位)。

6. 接收器超时寄存器 (USARTx_RTOR)

RTO[23:0]位:用于提供接收器的超时值(以位持续时间数为单位)。

7. 请求寄存器 (USARTx_RQR)

该寄存器可以设置一些请求:发送数据刷新请求TXFRQ、接收数据刷新请求RXFRQ、静默模式请求MMRQ、发送断路请求SBKRQ和自动波特率请求ABRRQ。

8. 中断和状态寄存器 (USARTx_ISR)

TEACK位:发送使能确认标志


通用同步异步收发器波特率计算

USART_BRR寄存器保存着与波特率相关的值。计算公式如下:

Formula.png

例如,假设USART的时钟fck=8MHz,并且要设定的波特率是9600,那么USARTx_BRR的值是:

USARTx_BRR = 8 000 000/9600 = 833d = 0341h



跳转到指定楼层
如果你能看到我的世界里那些渐渐消逝的美好,你就能体会到现在所拥有的幸福。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 32 | 回复: 51



手机版|

GMT+8, 2024-3-29 16:25 , Processed in 0.141712 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表