This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPM0-SDK: MSPM0G3507 串口DMA进行不定长数据收发

Part Number: MSPM0-SDK
Other Parts Discussed in Thread: MSPM0G3507

HI,我在基于MSPM0G3507的串口+DMA实现不定长数据的收发,由于MSPM0G3507的寄存器特殊性,当使用DMA时,因为DMA及时半空FIFO所以超时中断无法触发,如果引入定时器轮询会浪费外设的同时效率不高,频繁的接收中断也会拉低CPU的效率。

我看到并参考:https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1220244/faq-uart-rx-ms-level-timeout-realization-based-on-event-for-mspm0?tisearch=e2e-sitesearch&keymatch=UART%20timeout%20MSPM0 来进行设计,但是发现偶尔会出现字节多收,理论上此拓扑应该能行的通,但是我试验多次,发现一旦数据多了还是会多收字节,表现为DMASZ的数量跟实际发送不一致。

对于MSPM0G3507的架构特殊性,我严重怀疑TI的芯片设计是否有用过串口。

此问题依然存在,最后我只能使用串口中断+超时中断,使用仅仅4字深的FIFO来接收数据。

各位如果有更好的建议,还请让我知道,谢谢!