DMA简介

DMA简介

Data Memory Access 直接存储器访问,主要功能把一个数据从一个地方搬运到另一个地方,不占用CPU
DMA1有7个通道,DMA2有5个通道,可以实现M -> M M->P P->M 之间的数据搬运

DMA功能框图

在这里插入图片描述

1、DMA请求

DMA请求由外设产生,一般需要开启外设的DMA请求

2、通道

当DMA的传输方向是 M->M的时候,所有的通道都是可以用的,没有限制。
当DMA的传输方向是其他情况时,就要按照各个通道连接的外设进行选择。
在这里插入图片描述

3、仲裁器

在stm32中通过配置DMA_CCR寄存器的PL位能设置通道的优先级。

  • 当使用同一个通道时,通道编号小的优先级高。
  • 当使用不同的DMA时,如果优先级相同,DMA1的优先级高于DMA2。
    在这里插入图片描述

DMA结构体

DMA结构体主要分为两部分

第一部分:数据从哪里来,要到哪里去

在这里插入图片描述
前三个用来确定,数据从哪里来,要到哪里去。数据来源的地址分别存放在外设地址寄存器和存储器地址寄存器。
如果采用M->M的方式,则需要另外配置寄存器:启动存储器到存储器模式。
数据传输方向:有CCR寄存器的DIR位来配置,可以是从存储器读或从外设读。

第二部分:数据要传多少,传输的单位是什么

在这里插入图片描述
1、传输数目:控制传输数据寄存器,32位的,只有低16位有效。
2和3、地址增量模式:判断是否要地址递增。由CCR寄存器MINC和PINC配置。如果说是外设,因为只有一个寄存器,地址无法递增。如果是Flash或者SRAM中的数据,一般是数组,这是就必须地址递增。因为数组传送完当前数据之后,一定要指针下移,传输别的数据。
4和5、数据宽度:就是一次传输多少位。由CCR寄存器的PSIZE和MSIZE决定。
(当存储器和外设数据宽度不一样时,会在成数据丢失)

第三部分,什么时候传输结束

在这里插入图片描述
模式选择:配置的CCR寄存器的CIRC,是否启用循环模式。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值