MCU上每个DMA控制器一般支持多个通道,当有多个通道请求传输时将按照优先级顺序执行。但已处于传输中的
通道不会被打断,高优先通道需等当前通道传输完成后才会启动。
因此在高频率传输的场景下,不同速率的外设不要使用同一个DMA。
举个反例:100M的SPI和9600的串口都用DMA1,两个外设都有数据传输的情况下,如果串口先占用了DMA,则SPI需要等串口传输完成才能进行SPI的传输,这时候SPI的速度可就远低于100M了
2024-02-10 17:45:40
MCU上每个DMA控制器一般支持多个通道,当有多个通道请求传输时将按照优先级顺序执行。但已处于传输中的
通道不会被打断,高优先通道需等当前通道传输完成后才会启动。
因此在高频率传输的场景下,不同速率的外设不要使用同一个DMA。
举个反例:100M的SPI和9600的串口都用DMA1,两个外设都有数据传输的情况下,如果串口先占用了DMA,则SPI需要等串口传输完成才能进行SPI的传输,这时候SPI的速度可就远低于100M了