嵌入式--DMA实验及相关库函数

本文详细介绍了STM32的直接存储器访问(DMA)机制,包括DMA控制器的功能、通道配置、数据传输特性、中断管理和寄存器配置。讲解了如何通过设置不同寄存器实现DMA传输,并提供了DMA相关的库函数及其作用。内容还涵盖了DMA实验配置步骤,帮助读者理解并应用STM32的DMA技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、DMA原理

1.DMA 全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。作用:为CPU减负。 

2.STM32最多有2个DMA控制器(DMA2仅存在大容量产品中),DMA1有7个通道。DMA2有5个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁起来协调各个DMA请求的优先权。

3.DMA框图 

4.DMA主要特性

①每个通道都直接连接专用的硬件DMA请求,都支持软件触发,这些通过软件来配置。
②在七个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),假如在相等优先权时由硬件决定(请求0优先于请求1,依此类推) 。

③ 独立的源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源和目标地址必须按数据传输宽度对齐。

④ 支持循环的缓冲器管理。

⑤ 每个通道都有3个事件标志(DMA 半传输,DMA传输完成和DMA传输出错),这3个事件标志逻辑或成为一个单独的中断请求。

⑥ 外设和存储器,存储器和外设的传输 ,存储器和存储器间的传输。

⑦ 闪存、SRAM、外设的SRAM、APB1 APB2和AHB外设均可作为访问的源和目标。

⑧ 可编程的数据传输数目:最大为65536

 5.外设的DMA请求,可以通过设置相应外设寄存器中的控制位,被独立地开启或关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值