我们可以看出GPIO外设跟AHB1相连;TIM5跟APB1相连。而我们从DMA访问框图看得清楚,DMA1的外设端口根本没连接AHB1,自然没法访问相应外设,比如GPIO,而DMA2 可以,因为它可以经过总线矩阵后去访问AHB1的外设。
那DMA1为什么能访问TIM5呢,因DMA1的AHB外设端口总线经过AHB/APB1桥后就可以访问APB1各类外设,比方TIM5等。
至于咨询者问到的两个桥接器的作用,没啥过多需要解释的。桥嘛,连接第一;然后两边时钟的同步和时钟分频,满足不同外设的时钟需求。
ST MCU的参考手册里强调了只有DMA2能实现MEMORY到MEMORY的传输,DMA1是实现不了的,原理类似。因为要实现M to M 的传输,必须两个端口都能实现对MEMORY的访问,DMA1的AHB外设端口无法访问到内部MEMORY。
咨询者的问题,基本上靠看上面几幅图可以得到答案。这些图很重要,很多信息用图描述也很直观明了。各技术手册里的插图往往大有乾坤,不要视而不见。上面提到的都是基于STM32F4系列的总线架构,你也可以去看看STM32其它系列的系统总线框图,相信你一定会另有发现和收获