- 参考资料
《STM32F4开发指南-库函数版本》-第28章 DMA实验
《STM32F4中文参考手册》-第9章 DMA控制器
---------------------------------------------------------------------------------------------------------------------------------
- 知识点
1、什么是DMA?
- DMA 全称Direct Memory Access,即直接存储器访问。
- DMA传输,将数据从一个地址空间复制到另一个地址空间。
- 当DMA进行初始化以后,完成了配置,传输数据不需要经过CPU了,可以直接将数据从一个地址传输到另一个地址,通过DMA通道。
- 硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。通过DMA传输可以为CPU减负
- 使用场景:只是单纯需要数据传输,不需要经过CPU进行数据处理的时候使用DMA通道传输
2、STM32F4最多有2个DMA控制器,2个DMA控制器总共有16个数据流(每个控制器8个)。
每个DMA控制器都用于管理一个或者多个外设的存储器访问请求。
每个数据流总共可以有多达8个通道(或请求),每个通道都有一个仲裁器,用于处理DMA请求间的优先级。
3、DMA的框图
*以一个DMA通道为例
*有8个数据流,每个数据流上只能有一个通道通过。DMA传输数据:源→目标;目标→源
(存储器和外设之间的数据传输)
4、DMA的特性
|
5、DMA通道选择
寄存器:DMA_SxCR
位数:3位
一个外设不单单只可以用于一个数据流和通道之间 |
6、DMA事务——数据传输的源和目标的地址设置
寄存器:DMA_SxCR