STM32学习笔记—— DMA

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012292754/article/details/83788073

1 STM32 DMA 特性

  1. 7个独立的可配置的通道(请求)
  2. 每个通道直接连接专用的硬件 DMA 请求,每个通道都同样支持软件触发,这些功能通过软件来配置;
  3. 在 7 个请求间的优先权可以通过软件编程设置,在相等优先权时由硬件决定(请求 0 优先于 请求1)
  4. 独立的源和目标传输宽度(字节、半字,全字),模拟打包和拆包的过程;
  5. 支持循环的缓冲器管理;
  6. 每个通道都有 3 个事件标志(DMA 半传输、DMA传输完成、DMA传输出错),这3个事件标志逻辑或成为一个单独的中断请求;
  7. 存储器和存储器间的传输;
  8. 外设和存储器之间的传输;
  9. 闪存、SRAM、外设的SRAM、APB1 和 APB2 外设均可作为访问的源和目标;
  10. 传输数据,最大 65535

2 DMA 控制器

协调外设接口和内存储器的数据传输,DMAC

3 DMA 数据传输过程

  1. DMA 预处理:CPU 向 DMA发送命令,入 DMA方式、主存地址,传送的字数,之后CPU执行原来的程序;
  2. 数据传送:在DMA控制下自动完成;
  3. DMA结束处理: DMAC 把 总线控制权交给 CPU

4 DMA 内部寄存器

  • 地址寄存器:存放DMA传输时存储单元地址;
  • 字节计数器:存放 DMA 传输的字节数;
  • 控制寄存器:存放由CPU设定的DMA传输方式,控制命令;
  • 状态寄存器:存放DMAC 当前的状态,包括有无 DMA请求,是否结束

5 DMA 通道分配

在这里插入图片描述

6 DMA 通道配置

在这里插入图片描述

7 DMA 的API 库函数

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u012292754/article/details/83788073