DMA相关知识
![](https://i-blog.csdnimg.cn/blog_migrate/6793d1fb690cd1da882075a563c0207a.jpeg)
一般来讲我们想在单片机上搬运数据的话对底层硬件来说有两种方式,一种是CPU来做,还有就是DMA了。
如果让CPU来做,那么CPU就会一直忙于数据的搬运。对于其他的工作,CPU就会耽误他的指令执行。那么为了解决这个问就发明了DMA。DMA外设基本不需要CPU来介入的。这个外设会根据我们的配置,自发的进行数据的搬运
总结:DMA是CPU的助手,它是数据的搬运工。
总线矩阵
F1总线矩阵
![](https://i-blog.csdnimg.cn/blog_migrate/ffa33592713719c34f55a6dbc37a8457.png)
F4总线矩阵
![](https://i-blog.csdnimg.cn/blog_migrate/ab1314b80bcba2b69fd0f5145b6fc33e.png)
F7总线矩阵
![](https://i-blog.csdnimg.cn/blog_migrate/e16317cbd87c3e29a895d78a3fea0b07.png)
H7总线矩阵
![](https://i-blog.csdnimg.cn/blog_migrate/511d5e1f4bd942e79ad37e4448da2485.png)
DMA框图
F1DMA框图
![](https://i-blog.csdnimg.cn/blog_migrate/e309e8d3b7a5dff06748e942172c8626.jpeg)
假设是ADC搬运16位目标是32位的话要进行额外的处理
F4/F7DMA框图
![](https://i-blog.csdnimg.cn/blog_migrate/fef7a7101da2ec813135710fafb42801.jpeg)
假设传的16位缓存一次再输出32位
H7DMA框图
![](https://i-blog.csdnimg.cn/blog_migrate/914983ae82c34f31fc4cff671c86af3e.jpeg)
通过DMAMax来把请求变的更多
要点
![](https://i-blog.csdnimg.cn/blog_migrate/9c8541a98ffd2cce67b4500b8edab86e.jpeg)
储存器和储存器,外设和储存器进行传输