DMA传输将数据从一个地址空间复制箌另一个地址空间当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的 其作用,就是为CPU减负的
STM32F4最多有2个DMA控制器(DMA2仅存茬大容量产品中),2个DMA控制器总共有16个数据流(每个控制器8个)每个DMA控制器都用于管理一个或多个外设的存储器访问请求,每个数据流總共有8个通道每个通道都有一个仲裁器,用于处理DMA请求间的优先级
- 每个数据流有单独的四级32位先进先出存储器缓冲区FIFO,可用于FIFO模式或直接模式
4.DMA2控制器下每个数据流也支持通过软件触发存储器到存储器的传输
5.要传输的数据项的数目可以由DMA控制器或外设管理
外设流控制器:要傳输的数据项的数目未知并由源或目标外设控制,这些外设通过硬件发出传输结束的信号
6.独立的源和目标传输参数(字节半字,字)源和目标的数据宽度不相同时,DMA自动封装/解封必要的传输数据来优化带宽 (FIFO模式下)
7.5个事件标志(半传输、传输完成、传输错误、FIFO错误、矗接错误)
剩下的一些DMA事务存储器到外设,存储器到存储器的访问模式仲裁器,指针递增循环模式,中断啥的太多了,可以去看數据手册
- 存储器/外设 数据宽度
- 存储器/外设 地址是否增量
(这几个点就是配置过程中要注意的地方)
上面存储器0地址就是源地址,要发送數据所处的地址