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
UART 有两个 FIFO,深度为 4 个条目,一个 FIFO 用于发送,另一个 FIFO 用于接收。可通过 UART 数据 (TXDATA/RXDATA) 寄存器访问 FIFO。RXDATA 寄存器的读取操作返回一个 12 位值,该值由 8 个数据位和 4 个错误标志组成。对 TXDATA 的写入操作将 8 位数据放入发送 FIFO 中。
复位后,两个FIFO默认都是禁用的,其表现如同1字节深的保持寄存器。可通过设置 UARTx.CTL0 中的 FEN 位来启用 FIFO。可通过 UARTx.STAT 寄存器和中断事件来监控 FIFO 状态。
而对空、满和溢出条件的监控则是由硬件来完成的
UARTx.STAT 寄存器包含空和满标志(TXFE、TXFF、RXFE 和 RXFF 位),而 CPU_INT.RIS 寄存器通过 OVRERR 位指示接收 FIFO 的超限状态。发送 FIFO 溢出没有指示器。如果写入操作溢出发送 FIFO,则该操作将丢失。如果 FIFO 被禁用,将根据 1 字节深的保持寄存器的状态设置空和满标志。当接收到的数据多于 FIFO 能够捕获的数据时,最早的数据将被接收到的数据覆盖。
通过 UARTx.IFLS 寄存器控制 FIFO 生成中断的触发点。两个FIFO可分别配置为不同的触发深度。发送 FIFO 的可用配置包括 3/4、1/2、1/4 和空,用于接收 FIFO 1/4、1/2、3/4 和满。例如,如果为接收 FIFO 选择了 3/4 选项,则 UART 在接收了 3 个数据字节之后会生成接收中断。复位结束后,两个 FIFO 均配置为在 1/2 标记处触发中断。在以下情况下,FIFO 完整性是不确定的: