DMA直接存储器存储


1.DMA存储器简介

DMA Direct Memory Access )直接存储器存取
DMA 可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须 CPU 干预,节省了 CPU 的资源
12 个独立可配置的通道: DMA1 7 个通道), DMA2 5 个通道)
每个通道都支持软件触发和特定的硬件触发
STM32F103C8T6 DMA 资源: DMA1 7 个通道)

DMA是可以直接访问STM32内部的储存器,
DMA是在存储器之间进行数据转运的
运算器和控制器合起来叫CPU

存储器映像


ROM就是只读存储器,是一种非易失性,掉电不丢失的存储器
RAM是一种随机存储器,是一种易失性,掉电丢失的存储器
寄存器是一种特定的存储器,一方面,CPU可以对寄存器进行读写,另一方面,每个寄存器后面都接了一根导线,可以用于控制外设电路的状态
主动单元这里,内核有Dcode总线(专门访问flash)和系统总线(访问其他东西),可以访问右边的存储器,各个通道可以分别设置他们转运数据的原地址和目的地址,这样有利于独立转运数据

仲裁器:用于调度各个通道,防止产生冲突。

DMA请求;用于硬件触发DMA的数据转运

DMA基本结构图

左边是外设寄存器站点。(外设),右边是存储器站点,包括Flash和SRAM;由于flash是只读的,所以DMA不可以进行SRAM到flash或flash到flash的转运操作

传输计数器是一个自减计数器,每转运一次,减一;重装为循环模式(相当于ADC的连续模式)

*软件触发在这里为连续触发(一般适用于存储器到存储器的转运)

DMA转运条件

第一,开关控制,DMA_Cmd必须使能

第二,传输计数器必须大于零

第三,触发源,必须有触发信号

注意:写传输计数器时必须先关闭DMA,在进行。

数据宽度与对齐

当目标数据宽度大于源数据宽度时,高位补零;

当目标数据宽度小于源数据宽度时,低位读取。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值