基于STM32F407的DMA解析-ADC单通道DMA读取数据

目录

一:什么是DMA? 

1.DMA简介:

2.DMA数据流与通道:

3.工作原理 :

二:实验代码及实验效果

2.1  ADC基本配置:

2.2 DMA基本配置:

2.3 主函数:

2.4 实验结果——串口接收数据

 三:DMA代码详细解及注意事项

 3.1 ADC代码段:

3.2DMA代码段:


 

一:什么是DMA? 

1.DMA简介:

       DMA,全称为:Direct Memory Access,即直接存储器访问。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。

      STM32F407ZGT6 有 2 个 DMA 控制器(DMA1 和 DMA2),共 16 个数据流(每个控制器 8 个),每一个 DMA 控制器都用于管理一个或多个外设的存储器访问请求。每个数据流有 8个通道(或称请求)。每个数据流通道都有一个仲裁器,用于处理 DMA 请求间的优先级。

2.DMA数据流与通道:

      每个DMA有八个数据流,而8个数据流中的每一个都连接到专用硬件 DMA 通道(请求),DMA 数据流请求之间的优先级可用软件编程(4 个级别:非常高、高、中、低),在软件优先级相同的情况下可以通过硬件决定优先级(例如,请求 0 的优先级高于请求 1),每个数据流也支持通过软件触发存储器到存储器的传输(仅限 DMA2 控制器),可供每个数据流选择的通道请求多达 8 个。此选择可由软件配置,允许几个外设启动 DMA请求。

      在设置DMA数据流与通道的时候要按照数据手册当中的对应关系进行配置。

3.工作原理 :

       在产生事件后,外设会向 DMA 控制器发送请求信号。DMA 控制器根据通道优先级处理该请求。只要 DMA 控制器访问外设,DMA 控制器就会向外设发送确认信号。外设获得 DMA 控制器的确认信号后,便会立即释放其请求。一旦外设使请求失效,DMA 控制器就会释放确认信号。如果有更多请求,外设可以启动下一个事务。 

二:实验代码及实验效果

2.1  ADC基本配置:


                
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值