stm32-DMA简介

本篇是我关于stm32中I2C的学习笔记,大部分参考的是《【野火®】零死角玩转STM32—F103-MINI》以及《STM32中文参考手册_V10》。推荐大家自己下去可以仔细阅读。


一、DMA 简介

DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候,CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。DMA 控制器包含了 DMA1 和 DMA2,其中 DMA1 有 7 个通道,DMA2 有 5 个通道,这里的通道可以理解为传输数据的一种管道。要注意的是 DMA2 只存在于大容量的单片机中

二、DMA 功能框图

DMA 控制器独立于内核,属于一个单独的外设,结构比较简单,从编程的角度来看,我们只需掌握功能框图中的三部分内容即可,具体见下图DMA 控制器的框图
在这里插入图片描述

①DMA 请求
  • 如果外设要想通过 DMA 来传输数据,必须先给 DMA 控制器发送 DMA 请求,DMA 收到请求信号之后,控制器会给外设一个应答信号,当外设应答后且 DMA 控制器收到应答信号之后,就会启动 DMA 的传输,直到传输完毕。

  • DMA 有 DMA1 和 DMA2 两个控制器,DMA1 有 7 个通道,DMA2 有 5 个通道,不同 的 DMA 控制器的通道对应着不同的外设请求,这决定了我们在软件编程上该怎么设置, 具体见 DMA 请求映像表。

  • DMA1控制器
    在这里插入图片描述

  • 从外设(TIMx[x=1、2、3、4]、ADC1、SPI1、SPI/I2S2、I2Cx[x=1、2]和USARTx[x=1、2、3]) 产生的7个请求,通过逻辑或输入到DMA1控制器,这意味着同时只能有一个请求有效。参见 图的DMA1请求映像。
  • 外设的DMA请求,可以通过设置相应外设寄存器中的控制位,被独立地开启或关闭。
  • DMA2控制器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值