STM32基础—–DMA

STM32基础——-DMA

一、DMA介绍

1.DMA是什么

DMA—Direct Memory Access, 翻译过来就是数据直接存储访问。官方一点的描述是:

DMA传输将数据从一个地址空间复制到另一个地址空间,提供在在外设和存储器之间或者存储器和存储器之间的高速数据传输。

所以DMA其实就相当于一个搬运工,把数据从一个地方搬到另一个地方。当大量数据需要传输的时候,我们就给DMA发送命令,让DMA去处理这些数据,从而解放CPU,让CPU去处理更复杂的事件。

2.DMA框图

STM32基础-----DMA
从上图我们可以看到每个通道都有对应的外设,但是DMA不是也可以进行存储器到存储器之间的传输吗什么没有看到对应的通道呢实,DMA的任何一个通道都可以进行存储器到存储器之间的数据传输只不过在存储器到存储器之间进行数据传输前,需要将DMA_CCRx的MEM2MEM位置位。
下图更加清晰地表现出DMA通道优先级和数据传输模式的关系
STM32基础-----DMA
下图为源地址数据宽度为1byte,目标地址数据宽度为4byte数据传输及对齐方式。
STM32基础-----DMA

二、DMA代码详解

Memory to Memory

DMA初始化

dam_mtm.c文件

dam_mtm.h文件

main.c文件

Memory to Peripheral

dma_mtp.c文件


STM32基础-----DMA

来源:咸鱼很渴。

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月13日
下一篇 2021年7月13日

相关推荐