请问STM32F407的DMA一个数据流可以同时为两个外设打开么

2019-07-20 08:09发布

比如我要用到DMA1的数据流3中的SPI2 RX又要用到UART3_TX,我可以初始化的时候把这两个都设置到数据流三的通道0和通道4吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
xuande
2019-07-20 10:54

1、先看下DMA的物理结构,
8个channel共用一个stream,或者说每个stream包含8个channel。



2、同时开启多个stream是可行的,我成功实践过,看结构也可行。(内部自会协调工作)
    但,针对一个stream应当不能同时开启多个channel,因为这里有8选一开关。
   从配置寄存器也可以看出这一点。
  所以,可能要等前面的channel完成后,再重新配置,选择其他channel。



3、如果是我,就想办法把它们错开到不同的stream。


4、如果遇到不能错开的情况,就考虑其他可能性。比如放弃USART3、改用其他串口,放弃SPI2、改用其他SPI。硬件也要相应改动。


一周热门 更多>