ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
波特率分频系数是由16位整数部分和6位小数部分组成的22位二进制数。波特率发生器使用这两个值形成的数字来确定位采样周期。分数波特率分频器可让 UART 非常准确地生成所有标准波特率。
16 位整数通过 UART 整数波特率分频器 UARTx.IBRD 寄存器进行加载,而 6 位小数则通过 UART 分数波特率分频器 UARTx.FBRD 寄存器进行加载。
波特率分频可以使用以下公式计算:
UART 时钟是 UART 时钟控制逻辑的时钟输出,由 CLKSEL 和 CLKDIV 配置。过采样由 UARTx.CTL0 寄存器的 HSE 位进行选择,可以是 16、8 或 3。
BRD 的整数部分被加载到 UARTx.IBRD 寄存器中。必须将 6 位小数加载到 UARTx.FBRD 寄存器中。
下面的示例显示了一种简单的方法来计算 19200 位/秒波特率下的 IBRD.DIVINT 和 FBRD.DIVFRAC:
当更新波特率分频(UARTx.IBRD 或 UARTx.IFRD)时,也必须写入 UART.LCRH 寄存器,所以波特率分频的任何改变都必须在写入 LCRH 寄存器之后,更改才会生效。UART.IBRD 和 UART.FBRD 寄存器的内容在当前字符的发送或接收完成后才会更新。