【记录】DMA

来源:互联网 发布:淘宝香辣零食店铺推荐 编辑:程序博客网 时间:2024/06/03 14:56

概要

直接存储器访问,Direct Memory Access,DMA。DMA是一个硬件控制器,负责为RAM和IO设备开辟单独的数据传输通道,可以将IO寄存器中的数据直接复制到指定的地址RAM中。
而在没有DMA控制器的系统中,这种IO寄存器中的数据必须由CPU通过通用寄存器复制到RAM中的。

所以,当只是数据传输,没有逻辑处理时,可以考虑使用DMA控制器代替CPU实现RAM和IO之间数据的传输。
CPU善于执行逻辑运算,DMA善于数据传输,各有所长。

特性:

  • 每个控制器有8个数据流,每个数据流有最多支持8个通道
  • 数据流间可设置优先级
  • 数据传输数据长度可设置
  • 数据传输宽度可设置(通过FIFO缓冲实现)
  • 5个事件标志

这里写图片描述

配置

通道选择

这里写图片描述

DMA数据流

这里写图片描述

源和目标地址

这里写图片描述

流配置

这里写图片描述

可能的DMA流配置

这里写图片描述

DMA中断

这里写图片描述

DMA操作方法

  1. 使能DMA时钟
  2. 设置源地址
  3. 设置外设地址
  4. 设置传输数据大小
  5. 设置DMA数据流
  6. 启动DMA

实验要求

按键触发,将RAM中的数据发送到串口

参考

STM32F3与 F4 系列 Cortex M4 内核编程手册
STM32F4xxx中文参考手册
STM32F4xxx英文参考手册
STM32F4 开发指南(寄存器版)

0 0
原创粉丝点击