在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 2490|回复: 4

[求助] stm32的UART波特率自适应功能使用方法

[复制链接]
发表于 2020-2-6 14:51:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

请教有谁知道stm32的UART波特率自适应功能的用法。
1. 需要外面UART最先发送一个约定字符(例如10xx_xxxx或者0x55)对吗?
2. 假如第一阶段外面UART以19200波特率发来数据,stm32也完成了波特率适应。第二阶段外面UART改成了9600比特率,那么stm32还能把自己的波特率自动调整成9600吗???我个人感觉不能那,因为外部UART调整成9600之后,内部UART不知道发来的是波特率适应字符还是有用字符。
请帮忙看下2个问题,谢谢。
发表于 2020-2-7 20:23:45 | 显示全部楼层
同问
 楼主| 发表于 2020-2-10 10:34:39 | 显示全部楼层
顶起,有朋友清楚吗?
发表于 2020-10-9 22:45:16 | 显示全部楼层
本帖最后由 Mucar 于 2020-10-9 23:06 编辑

1. 通过ABRMOD配置自动波特率,早期版本只支持2种格式,后期支持4种格式
00: 通过起始位宽度判断波特率
01: 通过前后2位的下降沿判断,1010...
10: 通过检测波特率同步帧0x7F判断
11: 通过检测波特率同步帧0x55判断

2. ST的自动波特率,除了配置ABRMOD和ABREN外,每次启动检测前需要设置ABRRQ触发检测。
不管你之前的通讯波特率是多少。当你开始新的通讯波特率后,都需要软件触发ABRRQ重新检测。
然后根据ABRMOD的配置,片外发送波特率同步帧,然后计算波特率信息,并更新BRR寄存器。

3. ABRMOD的4种配置,00的误差最大,01会好些。10和11的误差最小,精度最高。
毕竟采样精度,以及延迟等误差都被8-10位数据平摊了,所以精度会好许多。

4. UART通讯,在前后2个数据流之间都会预留足够多的IDLE时间(上拉高电平)

那么,当使能自动波特率检测后,每个数据流的第一帧数据就是波特率同步帧。
片内系统只要检测IDLE电平超过一定阈值后,就可以启动自动波特率检测,
等待下一个数据流即可。


发表于 2021-3-19 14:19:26 | 显示全部楼层
Search online
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 20:45 , Processed in 0.023650 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表