江协科技stm32————8-1DMA直接寄存器读取

目录

DMA简介

存储器映像 

DMA框图

DMA基本结构图

 DMA转运条件

DMA请求

 数据宽度与对齐

数据转运+DMA

 ADC扫描模式+DMA


DMA简介

软件触发:存储器到存储器的数据转运 例如flash转到SRAM中

硬件触发:外设到存储器的数据转运,ADC完成AD转换后,触发一次,转运一次

存储器映像 

DMA框图

cpu和存储器构成

Flash是主闪存,SRAM是运行内存,各个外设可看出寄存器

总线矩阵左端是主动单元,拥有存储器的访问权,右边为被动单元,只能被左边的主动单元读写

Dcode访问Flash,系统总线访问其他

内部多通道可完成数据转运,仲裁器用于调度各个通道,防止发生冲突,AHB从设备用于配置DMA参数,DMA请求用于硬件触发DMA的数据转运

DMA基本结构图

传输方向:外设寄存器<——>存储器     

                      Flash ——>SRAM   

                      SRAM <——> SRAM (Flash只读)

起始地址:决定从哪来到哪去

数据宽度:指定一次转运要按多大的数据宽度来进行(Byte、Halfword、Word)

地址是否自增:意思是地址转运后,是否要将地址转到下个地址

传输计数器:自减,控制DMA转运次数

自动重装器:减到0后,自增的地址回到初始位

触发:决定DMA在什么时机进行转运

M2M:决定硬件触发还是软件触发,1时软件触发(连续触发, 多用于存储器到存储器情况),以最快速度连续不断的触发DMA,不能和自动重装同时用,给0时硬件触发(ADC、定时器、串口)在硬件达到一定条件时,给信号DMA转运

开关控制:DMA_Cmd使能

 DMA转运条件

1、开关控制使能状态

2、传输计数器大于0

3、M2M触发源必须有信号

DMA请求

EN=0时不工作, EN=1时工作

M2M选择是硬件触发还是软件触发

每个硬件对应的通道不同,软件触发任意选择

经过通道后进入优先权判断,通道越小优先级越高,也可以自定义

数据宽度与对齐

源端宽度=目标宽度:正常传递

源端宽度<目标宽度:高位补0

源端宽度>目标宽度:舍弃高位

数据转运+DMA

项目目标:将SRAM数组 DataA[传递到 SRAM数组 DataB

步骤:

1、配置外设以及存储器的起始地址(首地址)、数据宽度(8字节)、地址是否自增(自增)

2、方向参数:外设寄存器--->存储器

3、传输计数器:7

4、不需要自动重装

5、软件触发

6、给DMA使能

 ADC扫描模式+DMA

项目目标:7个通道一次进行AD转换,结果都放到ADC_DR数据寄存器中,在每个单独的通道转换完成后,进行DMA数据转运,并且目的地址自增

步骤:

1、配置外设以及存储器的起始地址(外设:ADC_DR地址,存储器:定义一个ADValue地址)、数据宽度(16字节)、地址是否自增(外设不自增,存储器自增)

2、方向参数:外设寄存器--->存储器

3、传输计数器:7

4、是否自动重装看ADC扫描模式

5、ADC的硬件触发

6、给DMA使能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值