DMA基本原理及其实验代码编写

本文详细介绍了STM32F4的DMA(直接存储器访问)基本原理,包括其功能、结构和特性。通过实验代码讲解了如何配置DMA通道、设置传输参数,并实现了数据的传输。文中还涵盖了DMA通道选择、仲裁器配置、中断处理等方面的知识,旨在帮助读者深入理解并掌握STM32F4的DMA应用。

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

  • 参考资料

《STM32F4开发指南-库函数版本》-28DMA实验

STM32F4中文参考手册》-9 DMA控制器

---------------------------------------------------------------------------------------------------------------------------------

  • 知识点

1、什么是DMA?

  • DMA 全称Direct Memory Access,即直接存储器访问
  • DMA传输,将数据从一个地址空间复制到另一个地址空间。
  • 当DMA进行初始化以后,完成了配置,传输数据不需要经过CPU,可以直接将数据从一个地址传输到另一个地址,通过DMA通道
  • 硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。通过DMA传输可以为CPU减负
  • 使用场景:只是单纯需要数据传输,不需要经过CPU进行数据处理的时候使用DMA通道传输

2、STM32F4最多有2DMA控制器,2个DMA控制器总共有16个数据流(每个控制器8)。

     每个DMA控制器都用于管理一个或者多个外设的存储器访问请求。

     每个数据流总共可以有多达8个通道(或请求),每个通道都有一个仲裁器,用于处理DMA请求间的优先级。

3、DMA的框图

*以一个DMA通道为例

*有8个数据流,每个数据流上只能有一个通道通过。DMA传输数据:源→目标;目标→源

(存储器和外设之间的数据传输)

4、DMA的特性

5、DMA通道选择

寄存器:DMA_SxCR

位数:3位

一个外设不单单只可以用于一个数据流和通道之间

6、DMA事务——数据传输的源和目标的地址设置

寄存器:DMA_SxCR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不生气。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值