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.
你好
我在 MSP432上有裸机(无RTOS)应用程序。
DMA设置为与UART RX配合使用。
UART通信只是256字节的电报流,其间有1毫秒的暂停。
我看到以下情景。
如果DMA在UART电报开始时未开始侦听,它将接收其中的一部分,然后等待暂停,接收预期256的剩余量(来自另一个电报)
等等...
问题
使用DAM模块驱动程序库中的什么命令可以重置DMA缓冲区?
谢谢
>您需要确保仅在发生暂停时才启用DMA通道
如何实现? 在启用UART+DMA之前,我不知道是否有暂停。
如果我在电报中间开始接收,会怎样?
无法取消?
有两种导致DMA缓冲区损坏的淫秽方式。
首先,2个DMA缓冲区之间的间隔太小,这是一种溢出错误。
其次, DMA在UART传输的中间开始侦听错误的时间,因此它占用当前UART电报的一部分,等待,接收第二个UART电报的另一部分,Viola,我们必须重置DMA。
>DMA必须在启动UART通信之前初始化并启用。
这是一件好事,但当我启动应用程序时,我无法理解这一时刻是两个UART电报之间的停顿,还是UART即将到来。
> 监控UART RX线,查看是否有100 us或更多空闲
您是否打算在此引脚上设置GPIO处于活动状态,如果仍处于活动状态,则进行监控?
如果是,请激活此引脚上的UART RX?