|
通用同步异步收发器(USART)是微控制器的一项最基本的外设,它提供了与其他设备如RFID、GPS、GSM等进行串行通信的硬件。同时USART也是进行调试的很重要的工具。它支持全双工异步通信、同步单向通信、半双工单线通信以及多处理器通信; 还支持 LIN(局域互连网络)、智能卡协议与 IrDA(红外线数据协会) 规范,以及调制解调器操作(CTS/RTS)。 STM32F7共有8个USART,其支持的特性略有不同:
根据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寄存器保存着与波特率相关的值。计算公式如下:
例如,假设USART的时钟fck=8MHz,并且要设定的波特率是9600,那么USARTx_BRR的值是: USARTx_BRR = 8 000 000/9600 = 833d = 0341h
|