STMCU小助手
发布时间:2022-6-13 08:48
|
01. USART简介 通用同步异步收发器 (USART) 能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。USART 通过小数波特率发生器提供了多种波特率。 它支持同步单向通信和半双工单线通信;还支持 LIN(局域互连网络)、智能卡协议与 IrDA(红外线数据协会)SIR ENDEC 规范,以及调制解调器操作 (CTS/RTS)。而且,它还支持多处理器通信。 通过配置多个缓冲区使用 DMA 可实现高速数据通信。 02. USART主要特性 ● 全双工异步通信 ● NRZ 标准格式(标记/空格) ● 可配置为 16 倍过采样或 8 倍过采样,因而为速度容差与时钟容差的灵活配置提供了可能 ● 小数波特率发生器系统 — 通用可编程收发波特率(有关最大 APB 频率时的波特率值,请参见数据手册)。 ● 数据字长度可编程(8 位或 9 位) ● 停止位可配置 - 支持 1 或 2 个停止位 ● LIN 主模式同步停止符号发送功能和 LIN 从模式停止符号检测功能 — 对 USART 进行 LIN 硬件配置时可生成 13 位停止符号和检测 10/11 位停止符号 ● 用于同步发送的发送器时钟输出 ● IrDA SIR 编码解码器 — 正常模式下,支持 3/16 位持续时间 ● 智能卡仿真功能 — 智能卡接口支持符合 ISO 7816-3 标准中定义的异步协议智能卡 — 智能卡工作模式下,支持 0.5 或 1.5 个停止位 ● 单线半双工通信 ● 使用 DMA(直接存储器访问)实现可配置的多缓冲区通信 — 使用 DMA 在预留的 SRAM 缓冲区中收/发字节 ● 发送器和接收器具有单独使能位 ● 传输检测标志: — 接收缓冲区已满 — 发送缓冲区为空 — 传输结束标志 ● 奇偶校验控制: — 发送奇偶校验位 — 检查接收的数据字节的奇偶性 ● 四个错误检测标志: — 溢出错误 — 噪声检测 — 帧错误 — 奇偶校验错误 ● 十个具有标志位的中断源: — CTS 变化 — LIN 停止符号检测 — 发送数据寄存器为空 — 发送完成 — 接收数据寄存器已满 — 接收到线路空闲 — 溢出错误 — 帧错误 — 噪声错误 — 奇偶校验错误 ● 多处理器通信 - 如果地址不匹配,则进入静默模式 ● 从静默模式唤醒(通过线路空闲检测或地址标记检测) ● 两个接收器唤醒模式:地址位(MSB,第 9 位),线路空闲 03. USART功能说明 接口通过三个引脚从外部连接到其它设备。任何 USART 双向通信均需要至少两个引脚:接收数据输入引脚 (RX) 和发送数据引脚输出 (TX): RX :接收数据输入引脚就是串行数据输入引脚。过采样技术可区分有效输入数据和噪声,从而用于恢复数据。 TX :发送数据输出引脚。如果关闭发送器,该输出引脚模式由其 I/O 端口配置决定。如果使能了发送器但没有待发送的数据,则 TX 引脚处于高电平。在单线和智能卡模式下,该 I/O用于发送和接收数据(USART 电平下,随后在 SW_RX 上接收数据)。 04. USART字符说明 可通过对 USART_CR1 寄存器中的 M 位进行编程来选择 8 位或 9 位的字长。 TX 引脚在起始位工作期间处于低电平状态。在停止位工作期间处于高电平状态。空闲字符 可理解为整个帧周期内电平均为“1”(停止位的电平也是“1”),该字符后是下一个数据帧的起始位。 停止字符 可理解为在一个帧周期内接收到的电平均为“0”。发送器在中断帧的末尾插入 1或 2 个停止位(逻辑“1”位)以确认起始位。 发送和接收由通用波特率发生器驱动,发送器和接收器的使能位分别置 1 时将生成相应的发送时钟和接收时钟。
05. USART寄存器 5.1 状态寄存器 (USART_SR) Status register 偏移地址:0x00 复位值:0x00C0 0000
5.2 数据寄存器 (USART_DR) Data register 偏移地址:0x04 复位值:0xXXXX XXXX
5.3 波特率寄存器 (USART_BRR) Baud rate register 注意: 如果 TE 或 RE 位分别被禁止,则波特计数器会停止计数。 偏移地址:0x08 复位值:0x0000 0000
位 31:16 保留,必须保持复位值 位 15:4 DIV_Mantissa[11:0]:USARTDIV 的尾数这 12 个位用于定义 USART 除数 (USARTDIV) 的尾数 位 3:0 DIV_Fraction[3:0]:USARTDIV 的小数这 4 个位用于定义 USART 除数 (USARTDIV) 的小数。当 OVER8 = 1 时,不考虑 DIV_Fraction3位,且必须将该位保持清零。 5.4 控制寄存器 1 (USART_CR1) Control register 1 偏移地址:0x0C 复位值:0x0000 0000
5.5 控制寄存器 2 (USART_CR2) Control register 2 偏移地址:0x10 复位值:0x0000 0000
5.6 控制寄存器 3 (USART_CR3) Control register 3 偏移地址:0x14 复位值:0x0000 0000
5.7 保护时间和预分频器寄存器 (USART_GTPR) Guard time and prescaler register 偏移地址:0x18 复位值:0x0000 0000
|
经验分享 | USART接收的数据怎么错位啦?
经验分享 | 基于STM32H7 UART 空闲事件及DMA传输示例
经验分享 | STM32G4 UART+TIMER+DMA应用示例
经验分享 | STM32H563 UART+DMA 2D功能演示
经验分享 | 基于STM32H563演示UART+DMA功能
【STM32U3评测】实现双通道串口通信系统
STM32G系列RS485自动收发控制以及自适应波特率实战
【STM32H7S78-DK评测】CoreMark移植和优化--兼记printf重定向实现方法及常见问题
【STM32MP135-DK】裸机移植shell
NUCLEO-U545RE-Q评测】3. 串口基本收发测试
微信公众号
手机版