STM32--DMA直接存储器存取

一、DMA简介

STM32的DMA(Direct Memory Access,直接内存访问)是一种用于数据传输的硬件机制。它允许外设通过直接访问系统内存而不需要CPU的干预,从而提高数据传输的效率。

二、DMA特点

12个独立可配置的通道:数据从一个地方转运到另一个地方就需要占用一个通道;

一般软件触发适用于存储器与存储器的数据搬运,硬件触发适用于外设与寄存器的数据转运;

三、存储器映像

四、DMA框图

五、DMA基本结构

起始地址决定数据从哪里来到哪里去;

数据宽度决定一次传输的字节大小(uint8_t\unit16_t\uint32_t);

地址是否自增决定了每次转运后寄存器地址是否后移;

传输计数器可以设定转运多少次(自减);

自动重装器决定了每次自减到零后是否重装;

M2M选0或1决定使用硬件触发还是软件触发;

软件触发下不能使用自动重装器,因为软件触发是连续型触发,直到传输计数器值为0;

六、DMA请求

该图对应的是DMA触发部分,可以选择软件触发和特定硬件触发;

要使用某个硬件的触发源,就必须使用它所在的通道;

要确定使用特定通道的触发源,就得开启对应触发源的DMA输出;

7个触发源进入仲裁器后进行优先级判断最后产生内部的DMA1请求,而优先级默认是通道号越小优先级越高,也可在程序中配置;

七、数据宽度与对齐

如果把小数据转到大数据里,高位补0;

如果把大数据转到小数据里,高位舍弃;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值