STMCU小助手
发布时间:2022-7-11 22:53
|
前言 正确的USART通信要求发送和接收波特率的匹配度足够高,否则可能发生通信错误。 当在两个设备之间建立通信链路时,自动波特率检测十分有用,因为从设备能够检测到主控制器的波特率并进行相应的自我调整。这需要使用一种自动机制来确定波特率。 某些STM32器件中内置的USART外设提供许多功能,包括硬件自动波特率检测。 本应用笔记旨在介绍STM32微控制器的自动波特率检测功能,并为没有在硬件中实现此功能的STM32器件提供替代软件方法。 本应用笔记适用于表 1中所列产品。; I8 H+ l7 k% X6 ], V! {
1硬件自动波特率检测 1.1 特性概述 自动波特率检测(ABR)使接收设备能够接受来自各种以不同速率工作的发送设备的数据,无需事先建立数据速率。) \6 t) x4 f0 x 在一些STM32产品中,USART能够使用专用硬件自动确定波特率。+ o7 }5 S1 A- q 表 2提供了支持自动波特率检测的STM32系列设备的概述。. W' U0 p: P$ H6 H" M: \- k" J 8 _ V8 a8 ]4 U; H 5 S/ I. O, F- @3 Y% @: ^
1.2 自动波特率检测模式. }4 Y) b# b7 t% g j/ X8 J ABR是指接收设备通过检查第一个字符(通常是预先选择的标志字符)确定传入数据速率的 过程。 STM32产品上的自动波特率检测功能内置的各种模式基于不同字符模式:6 t0 F' G; P! Y7 e • 以“1”位为开头的任意字符:模式0 • 以10xx模式开头的任何字符:模式1 . u3 I4 F6 o/ ]3 j • 0x7F:模式2 9 R ^4 G/ M% L. t+ F3 x: s2 u • 0x55:模式3; u: m2 I6 g' i- d" A* ]. o T* P( p( M1 c) {: [* i
5 y! C1 o4 D& U7 i% U' c( r. K 1.3 ABR误差计算% t9 F- q0 K; O# w; ]/ b! ~ 由USART时钟源(fCK)决定通信速率范围(尤其是最大通信速率)。接收器采用不同的用户可配置过采样技术,可区分有效输入数据和噪声,从而用于恢复数据。这可以在最大通信速率与抗噪声/时钟不准确性之间实现平衡。6 V, q: b# @. j" e: r( L 可通过编程USARTx_CR1寄存器中的OVER8位来选择过采样方法,可以是波特率时钟的16倍 或8倍。& j3 g1 V) L& ? USART时钟源频率必须与预期通信速率兼容: • 16倍过采样时,波特率介于fCK/65535与fCK/16之间。7 p7 q# |1 v- p) E9 ?; u% v • 8倍过采样时,波特率介于fCK/65535与fCK/8之间。 波特率误差取决于USART时钟源、过采样方法和ABR模式。& }3 Z8 D0 n# W' V5 g 0 r- \% _" H0 [2 |7 @- N# y
( ^7 E5 E Z$ Z* M% W 其中:" p+ ~# j2 @/ Y/ `3 q7 `5 r • 预期波特率取决于发送设备 • 实际波特率是USART接收器使用自动波特率检测操作确定的波特率 完整版请查看:附件3 t: x# N8 O* v+ E% _ 0 |$ k& g+ O# o1 O8 z( H 6 s3 {4 ]+ w5 J$ `' A |
DM00327191_ZHV1.pdf
下载384.96 KB, 下载次数: 26
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
《MCUBoot课程》学习笔记+从信任链原理到量产实践
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
好用软件推荐-TouchGFX Designer
HRTIM 指南
微信公众号
手机版