【记录】DMA

概要

直接存储器访问,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 开发指南(寄存器版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值