[MM32生态] 灵动MCU的自动波特率检测功能

[复制链接]
2405|11
 楼主| 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 中无数据。

w2nme1ai7 发表于 2024-10-24 17:05 | 显示全部楼层
灵动微电子的MCU(微控制器单元)通常具备自动波特率检测功能,这一功能在串行通信中非常有用,尤其是在设备启动或通信初始化时
p0gon9y 发表于 2024-10-24 18:10 | 显示全部楼层
自动波特率检测功能允许MCU在启动或通信初始化时自动识别和设置正确的波特率,无需用户手动配置。
g0d5xs 发表于 2024-10-24 19:11 | 显示全部楼层
简化了系统配置过程,减少了用户的工作量,提高了系统的灵活性和易用性
lamanius 发表于 2024-10-24 20:16 | 显示全部楼层
自动波特率检测通常基于特定的波特率检测算法,通过分析接收到的数据帧中的起始位和停止位来确定波特率
q1ngt12 发表于 2024-10-24 21:30 | 显示全部楼层
自动波特率检测功能通常支持一定的波特率范围,如9600、19200、38400、57600、115200等。
kaif2n9j 发表于 2024-10-24 22:35 | 显示全部楼层
检测精度取决于MCU的时钟频率和算法的复杂度,通常可以达到较高的精度
cen9ce 发表于 2024-10-25 08:14 | 显示全部楼层
在设备启动时,自动波特率检测功能可以自动识别并设置正确的波特率,确保设备能够正常通信。减少了用户在设备启动时的配置工作,提高了设备的易用性
lix1yr 发表于 2024-10-25 09:45 | 显示全部楼层
在通信初始化过程中,自动波特率检测功能可以自动识别并设置正确的波特率,确保通信链路的建立。化了通信初始化过程,提高了系统的灵活性和可靠性。
t1ngus4 发表于 2024-10-25 10:05 | 显示全部楼层
自动波特率检测功能通常通过硬件寄存器进行配置,用户可以通过设置特定的寄存器位来启用或禁用该功能
d1ng2x 发表于 2024-10-25 13:13 | 显示全部楼层
在软件层面,用户可以通过调用特定的API或函数来启用自动波特率检测功能
suncat0504 发表于 2024-10-25 20:07 | 显示全部楼层
有了自动波特率检测功能,在未知串口波特率的情况下,非常有用。要不然,得一个一个试验。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

350

主题

2689

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部