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
将 UARTx.CTL0 寄存器中的 MODE 位设置为 ADDR9BIT,可启用 9 位模式。此功能在 UART 的多分支配置中非常有用,在这种配置下,连接到多个外设的单个控制器可以通过其地址或地址集以及地址字节的限定符与特定外设进行通信。在 9 位 UART 模式下,奇偶校验使能/模式位被忽略,并且 UART 字长 (UARTx.LCRH.WLEN) 必须设置为 8 位。
接收交易:在 9 位模式下,外设在奇偶校验位的位置检查地址限定符。如果该位置位,则将接收到的字节与 UARTx.ADDR 寄存器中预编程的地址进行比较:
可以在 UART.ADDR 寄存器中预定义该地址,以匹配接收到的字节。通过使用 UART.AMASK 寄存器中的地址屏蔽,匹配范围可扩大为地址集。默认情况下,UART.AMASK 为 0xFF,表示仅匹配指定的地址
传输事务:
9 位 UART 模式下的所有发送事务都被解释为:在 9 位模式下,第 9 位可由软件控制。LCRH 寄存器的 EPS 位设置反映了传输事务的第 9 位。为了指示地址字节,软件必须在字节传输前将 EPS 位置位。对于数据字节传输,在字节传输之前必须将 EPS 位清零。对于一个完整的传输事务,地址字节必须作为单字节传输进行发送,且 EPS 位被置位,随后是数据字节突发且 EPS 位被清零。
第 9 位处理:
| PEN | SPS | EPS | 第 9 位(已传输或验证) |
|---|---|---|---|
| 0 | X | X | 未传输或验证 |
| 1 | 1 | 0 | 0 (= Data) |
| 1 | 1 | 1 | 1 (= Address) |