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 中无数据。
|