打印
[MM32生态]

灵动MCU的自动波特率检测功能

[复制链接]
73|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LOVEEVER|  楼主 | 2024-9-27 15:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
UART 能够根据接收到的信号,自动检测并设置UART_BRR 寄存器。
自动波特率配置如下:
1. 配置ABRCR 寄存器的Former_edge 和Latter_edge, 选择自动波特率前一个边沿和后
一个边沿。
2. 配置ABRCR 寄存器的Abr_bitcnt, 选择自动波特率检测位长度。
3. 设置ABRCR 寄存器的Abr_en, 打开自动波特率检测功能。
打开ABRENDIEN, 自动波特率结束后会产生自动波特率结束中断。
打开ABRERRIEN, 自动波特率位错误或检测溢出错误,会产生自动波特率错误中断。
示例:
1. 设置Former_edge=1,Latter_edge=0,Abr_bitcnt=2,Abr_en=1
此时当接收到数据0xEF 时,会自动检测波特率并重置UART_BRR 寄存器,RXFIFO 会
接收到剩余数据0x0E。
2. 设置Former_edge=0,Latter_edge=1,Abr_bitcnt=2,Abr_en=1
此时当接收到数据0xF8 时,会自动检测波特率并重置UART_BRR 寄存器,RXFIFO 会接
收到剩余数据0x1F。
注:当Former_edge=1,并且接收的数据位最低位不为1,会导致接收出错,RXFIFO 中无数据。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

278

主题

1879

帖子

4

粉丝