Other Parts Discussed in Thread: SM470R1B1M-HT, TMS470R1B1M
主题中讨论的其他器件:SM470R1B1M-HT、
我将 DMA 传输与 SCI3接收功能结合使用。 除了一个例外、一切似乎都正常工作:当我收到的字符数少于 DMATC 中指定的字符数(在我的例子中:20)时、我需要知道多少个。 除了处理接收到完整字符数时调用的 DMA 中断之外、我还使用计时器中断来检查 DMATC 是否发生了变化。 为了强制和更新 DMATC、我尝试设置 DMA_STOP 或 DMA_Halt 或两者。 然后、我读出 DMATC 并清除 DMA_STOP/DMA_HALT 位。 但是、即使 我在缓冲区中看到已经接收到很多字符(少于20个)、DMATC 也始终为20。
如何在 DMA 传输完成之前强制 DMATC 更新? 或者、 如果 SCI RX 小于指定的计数、我如何知道它已接收到多少个字符?