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
对于接收到的数据,数据字节和 4 位状态(中断、帧、奇偶校验和溢出)会推到 12 位宽的接收 FIFO 上。可以通过读取 UARTx.RXDATA 寄存器来检索错误和状态,如表 21-2 所示。
| 错误条件(1) | 位域 | 说明 |
|---|---|---|
| 组帧错误 | FRMERR | 当一个低电平停止位被监测到时发生一个组帧错误。当使用两个停止位时,这两个位都会被检查是否有组帧错误。检测到成帧错误时,设置 FRMERR 位。 |
| 奇偶校验错误 | PARERR | 奇偶校验错误也就是字符中 1s 的数量和奇偶校验位的值不匹配。当一个地址位包含于字符时,它同时也被包含进奇偶校验计算中。检测到奇偶校验错误时,设置 PARERR 位。 |
| 接收溢出 | OVRERR | 如果将某个字符加载到 RXDATA/FIFO 中,而尚未读取其前一个字符,则会发生溢出错误。发生溢出错误时,设置 OVRERR 位。 |
| 中断状态 | BRKERR | 当所有接收到的数据、奇偶校验和停止位均为 0 时,会检测到中断。检测到中断条件时,设置 BRKERR 位。如果设置了中断使能 IMASK.BRKERR 位,则中断条件也可以设置中断标志 RXINT。 |
也可以通过读取 UARTx.STAT 寄存器来检查 UART 模块标志状态,如表 21-3 所示。
| 位域 | 说明 |
|---|---|
| BUSY | 一旦发送 FIFO 不为空(无论是否启用 UART),便会设置该位。在 IDLE_Line 模式下,BUSY 信号在空闲时间生成期间也保持设置状态。 |
| RXFE | 当接收 FIFO 为空时,设置该位。若FIFO被禁用(FEN = 0),则表明接收保持寄存器已满。若FIFO被使能(FEN = 1),则表明接收FIFO已满。 |
| RXFF | 当接收 FIFO 已满时,设置该位。如果 FIFO 处于禁用状态(FEN 为 0),则接收保持寄存器为空。如果 FIFO 处于启用状态(FEN 为 1),则接收 FIFO 为空。 |
| TXFE | 当发送 FIFO 为空时,设置该位。如果 FIFO 处于禁用状态(FEN 为 0),则发送保持寄存器为满。如果 FIFO 处于启用状态(FEN 为 1),则发送 FIFO 为满。 |
| TXFF | 当发送 FIFO 已满时,设置该位。若FIFO被禁用(FEN = 0),则表明发送保持寄存器为空。若FIFO被使能(FEN = 1),则表明发送FIFO为空。 |
| CTS | 当 CTS 信号有效(低电平)时设置该位,当 CTS 信号无效(高电平)时将该位清零。 |
| 空闲 | 在空闲线多处理器模式下检测到 IDLE 模式。IDLE 位用作每个字符块的地址标签。在空闲线多处理器格式中,当接收到的字符是地址时设置该位。 |