|
AN4908 应用笔记5 ]8 S" w9 j( Y, o# ?. |5 Q, j STM32 USART自动波特率检测7 L" Z7 {, P! P5 o( E- ] 前言 正确的USART通信要求发送和接收波特率的匹配度足够高,否则可能发生通信错误。9 O6 _& k3 w9 f, d/ V 当在两个设备之间建立通信链路时,自动波特率检测十分有用,因为从设备能够检测到主控制器的波特率并进行相应的自我调整。这需要使用一种自动机制来确定波特率。 某些STM32器件中内置的USART外设提供许多功能,包括硬件自动波特率检测。 本应用笔记旨在介绍STM32微控制器的自动波特率检测功能,并为没有在硬件中实现此功能的STM32器件提供替代软件方法。 9 {$ V" l/ @8 w$ k; `( |+ W 1 硬件自动波特率检测: }! z' y: z! T% C9 n 1.1 特性概述" Y S; D9 u/ N3 W 自动波特率检测(ABR)使接收设备能够接受来自各种以不同速率工作的发送设备的数据,无需事先建立数据速率。 在一些STM32产品中,USART能够使用专用硬件自动确定波特率。7 `! {3 N( }$ N* y/ } 表 2提供了支持自动波特率检测的STM32系列设备的概述。+ Q) N! l. |* W8 o/ ]
对于内置ABR的STM32系列设备而言,并非所有实例化USART接口均支持自动波特率检测。 表 3详细说明了这一限制。
1.2 自动波特率检测模式- z. @! f# p: R/ H1 O( A ABR是指接收设备通过检查第一个字符(通常是预先选择的标志字符)确定传入数据速率的 过程。 STM32产品上的自动波特率检测功能内置的各种模式基于不同字符模式:7 P- j: E$ K8 Y; U) I4 q • 以“1”位为开头的任意字符: 模式0; w5 l! a) M0 C: I • 以10xx模式开头的任何字符: 模式1 J% N: U1 i/ J0 v& d • 0x7F: 模式24 _; D% m; a' l$ v* ]9 z# I • 0x55: 模式3! C/ G A, x: [, E
. f8 z- K$ ~/ h# L 阅读更多内容,请下载文档: + {7 Y: B7 L/ n0 F% F 下载地址1>> 下载地址2>> , p6 _- _# M7 e; s U |
微信公众号
手机版