STM32 DMA 多通道工作逻辑 疑问

STM32 DMA 多通道工作逻辑
比如,同一个DMA 配置两个通道同时传输串口数据,通道1发送一个字节,通道2发送1024个字节,通道2的优先级要高于通道1,那么是否一定是等通道2全部传输完后才会轮到通道1

STM32的DMA支持多通道工作,在多通道工作时,DMA会根据通道的优先级来决定传输的顺序。通常情况下,优先级较高的通道会优先完成传输。

回到问题,在例子中,如果通道2的优先级要高于通道1,那么通道2会优先完成传输,直到完成后才会轮到通道1。所以在例子中,通道2会先完成传输1024个字节,然后再轮到通道1传输一个字节。

但是,这只是一般情况下的情况。实际上,DMA的工作方式是可以通过软件配置的。所以可以通过设置DMA的传输模式和中断优先级来控制DMA通道的工作顺序和中断优先级。

总结就是STM32的DMA支持多通道工作,可以根据通道的优先级来决定传输的顺序,但是这个顺序也可以通过软件配置来控制。
望采纳。