STM32基础——-DMA
一、DMA介绍
1.DMA是什么
DMA—Direct Memory Access, 翻译过来就是数据直接存储访问。官方一点的描述是:
DMA传输将数据从一个地址空间复制到另一个地址空间,提供在在外设和存储器之间或者存储器和存储器之间的高速数据传输。
所以DMA其实就相当于一个搬运工,把数据从一个地方搬到另一个地方。当大量数据需要传输的时候,我们就给DMA发送命令,让DMA去处理这些数据,从而解放CPU,让CPU去处理更复杂的事件。
2.DMA框图
从上图我们可以看到每个通道都有对应的外设,但是DMA不是也可以进行存储器到存储器之间的传输吗什么没有看到对应的通道呢实,DMA的任何一个通道都可以进行存储器到存储器之间的数据传输。只不过在存储器到存储器之间进行数据传输前,需要将DMA_CCRx的MEM2MEM位置位。
下图更加清晰地表现出DMA通道优先级和数据传输模式的关系
下图为源地址数据宽度为1byte,目标地址数据宽度为4byte数据传输及对齐方式。
二、DMA代码详解
Memory to Memory
DMA初始化
dam_mtm.c文件
dam_mtm.h文件
main.c文件
Memory to Peripheral
dma_mtp.c文件
来源:咸鱼很渴。
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!