我将 eUSCI (A)作为 UART 运行、以4800波特发送流(1字节时间约为2ms)。 我发送一个数据流、然后要确保在切换波特率之前所有字节都已用完。 根据我在手册、数据表和论坛(e2e)中阅读的所有内容、我应该能够监控 UCTXCPTIFG、当它变为1时、TXBUF 和传出移位寄存器都应该为空。
但它似乎不起作用。 这是风景… 我正在使用 TXIFG 中断将传出流馈送到 eUSCI TXBUF。 这是完美的。 当最后一个字节已经被发送到 TXBUF 时、我忙等待 TXIFG 返回、指示 TXBUF 为空。 然后、TXCPTIFG 上的忙等待完成以指示移位寄存器为空。 但它会立即返回。
如何知道它会立即返回? 嗯、我正在看一个我正在运行的1us ticker。 从最后一个字符输出到 eUSGI 再到 TXIFG 上升的时间为2156 (~2ms、听起来不错、1字节时间@ 4800波特)、此时 TXCPTIFG 已经上升。 增量约为4us、这是指令执行和查看所需的时间。
TXCPTIFG 实际上不像您说的那样工作。 是否可以在 TI 有人对此进行验证?