
前言 正确的USART通信要求发送和接收波特率的匹配度足够高,否则可能发生通信错误。 当在两个设备之间建立通信链路时,自动波特率检测十分有用,因为从设备能够检测到主控制器的波特率并进行相应的自我调整。这需要使用一种自动机制来确定波特率。 某些STM32器件中内置的USART外设提供许多功能,包括硬件自动波特率检测。 本应用笔记旨在介绍STM32微控制器的自动波特率检测功能,并为没有在硬件中实现此功能的STM32器件提供替代软件方法。 本应用笔记适用于表 1中所列产品。 ![]() 1硬件自动波特率检测 1.1 特性概述 自动波特率检测(ABR)使接收设备能够接受来自各种以不同速率工作的发送设备的数据,无需事先建立数据速率。 在一些STM32产品中,USART能够使用专用硬件自动确定波特率。 表 2提供了支持自动波特率检测的STM32系列设备的概述。 ![]() ![]() 1.2 自动波特率检测模式 ABR是指接收设备通过检查第一个字符(通常是预先选择的标志字符)确定传入数据速率的 过程。 STM32产品上的自动波特率检测功能内置的各种模式基于不同字符模式: • 以“1”位为开头的任意字符:模式0 • 以10xx模式开头的任何字符:模式1 • 0x7F:模式2 • 0x55:模式3 ![]() 1.3 ABR误差计算 由USART时钟源(fCK)决定通信速率范围(尤其是最大通信速率)。接收器采用不同的用户可配置过采样技术,可区分有效输入数据和噪声,从而用于恢复数据。这可以在最大通信速率与抗噪声/时钟不准确性之间实现平衡。 可通过编程USARTx_CR1寄存器中的OVER8位来选择过采样方法,可以是波特率时钟的16倍 或8倍。 USART时钟源频率必须与预期通信速率兼容: • 16倍过采样时,波特率介于fCK/65535与fCK/16之间。 • 8倍过采样时,波特率介于fCK/65535与fCK/8之间。 波特率误差取决于USART时钟源、过采样方法和ABR模式。 ![]() 其中: • 预期波特率取决于发送设备 • 实际波特率是USART接收器使用自动波特率检测操作确定的波特率 完整版请查看:附件 |
DM00327191_ZHV1.pdf
下载384.96 KB, 下载次数: 22
STM32 GUI LTDC 最大像素时钟评估方法
【STM32U3评测】实现双通道串口通信系统
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
STM32G系列RS485自动收发控制以及自适应波特率实战
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
【STM32H7S78-DK评测】CoreMark移植和优化--兼记printf重定向实现方法及常见问题
STM32 以太网 MAC Loopback 的实现