请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP432P401R 是否有办法在不清除TXIFG的情况下启动DMA TX?
当DMA TX完成时,UART在传输移位寄存器中有一个(部分)字符,在TXBUF寄存器中有最后一个字符。 当这些字符移出TX传输移位寄存器时,将设置TXIFG。 因此,当您要发送下一个数据包时,已设置TXIFG。 我可以通过1)重置TXIFG和2)设置TXIFG或将字符写入TXBUF寄存器来启动另一个DMA TX。
问题在于,如果正在进行接收DMA UART,则TXIFG的复位或设置可能会影响RXIFG,因为TXIFG的复位或设置需要读取IFG寄存器,修改一位,然后将修改后的内容写回IFG寄存器。 例如,读取RXIFG等于'1'的IFG寄存器, RCV DMA读取RXBUF,写入IFG寄存器,然后再次设置RXIFG。 RCV DMA从RXBUF寄存器读取同一字符两次。
我能想到的唯一解决方案是将TX和RX acroos两个UART分开。 还有其他想法吗???