USART: 错误地清除/触发超时中断
详细信息:
在 RHR/MSR/LSR 寄存器读取期间,USART 可能会错误地清除或触发超时中断。
权变措施:
CPU 用例
- 如果超时中断被错误地清除:
- 清除是有效的,因为 FIFO 中的挂起数据会重触发超时中断
- 如果错误地设置了超时中断,并且 FIFO 为空,请使用以下软件权变措施来清除中断:
- 在 TIMEOUTH 和 TIMEOUTL 寄存器中设置超时计数器的高值
- 将 EFR2 第 6 位设置为 1 以将超时模式更改为周期性模式
- 读取 IIR 寄存器以清除此中断
- 将 EFR2 第 6 位设置回 0 以将超时模式改回原始模式
DMA 用例
- 如果超时中断被错误地清除:
- 清除是有效的,因为下一个周期性事件会重触发超时中断
- - 用户必须通过将 EFR2 第 6 位设置为 1 来让 RX 超时行为处于周期性模式
- 如果超时中断被错误地设置:
- 这会导致 DMA 被软件驱动程序关闭
- 有效,因为下一个传入数据将导致软件再次设置 DMA