首页 > 其他分享 >STM32_8(DMA)

STM32_8(DMA)

时间:2023-05-12 09:57:49浏览次数:36  
标签:DMA 存储器 STM32 ADC 寄存器 CPU 通道

DMA

  • DMA(Direct Memory Access)直接存储器存取
  • DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源
  • 12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道)
  • 每个通道都支持软件触发和特定的硬件触发
  • 存储器和存储器之间的数据转运用软件触发,外设到存储器的数据转运用硬件触发
  • STM32F103C8T6 DMA资源:DMA1(7个通道)

 

存储器映像

 

DMA框图

可以把这张图看为CPU(Cortex-M3核心)和存储器两个部分,Flash是主闪存,SRAM是运行内存。

寄存器:CPU可以读写寄存器,并且寄存器的每一位后面都连接着一根导线,这些导线可以用于控制外设电路的状态,所以寄存器就是连接软件和硬件的桥梁。

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

 

DMA基本结构

 

DMA请求

 

举例

数据转运+DMA

 任务:将左边的SRAM数组转换到右边的SRAM数组。

 

ADC扫描模式+DMA

左边触发一次DMA,7个通道一次进行AD转换,每一次的转换结果都会放到ADC_DR数据寄存器中,我们需要做的就是在每个单独的通道转换完成后,进行一次DMA数据转运,并且目的地址进行自增。在ADC启动下一轮转换后,DMA同样也启动下一轮转运,ADC和DMA同步工作。

 

标签:DMA,存储器,STM32,ADC,寄存器,CPU,通道
From: https://www.cnblogs.com/toutiegongzhu/p/17390768.html

相关文章

  • STM32锅炉控制器方案 主控stm32F103VET6,锅炉的控制器,有流
    STM32锅炉控制器方案主控stm32F103VET6,锅炉的控制器,有流程图和程序协议的介绍。项目涉及文件系统,sd卡驱动,多路AD采集,modbus通信,CRC校验,I2C,SPIflash等等。提供PCB及原理图(ad格式),源码,源码含大量的中文注释。说明文档。ID:8610676487741446......
  • stm32步进电机加减速代码 stm32f103 stm32步进电机S型加减
    stm32步进电机加减速代码stm32f103stm32步进电机S型加减速程序源码与详细分析,资料为算法实现以及算法的相关讲解,例程中有stm32f103步进电机S型加减速的完整工程代码,对步进电机s型加减速控制很有帮助。ID:8630676800030048......
  • 500e + HALL STM32版 500e代码精简之后移植到103上,带载能力强,
    500e+HALLSTM32版500e代码精简之后移植到103上,带载能力强,低速性能优秀,效果见视频。增加开关霍尔算法,可对比无感角度与传感器角度,方便优化性能!提供:1、代码2、电路板+电机一套(和程序对应3、解析文档另有对应的单电阻方案,st单电阻挺麻烦的,12000。ID:516000656267840027......
  • stm32 boot0硬件接法导致的概率性启动失败问题总结和反思
    概要 问题概要,板子在稳压电源上工作很好,可一旦接了电池,stm32就会出现概率性的无法启动。加上项目比较急,这个问题阻塞一直无法量产。真是非常的要命啊。 思路分析 既然是不同的电源会导致这个问题,第一步就是分析电源的毛刺,通过示波器查看,发现稳压电源的电压是逐渐上升的,而电......
  • STM32裸机移植RT-Thread(标准版)
    前言,因为我嫌正点原子stm32l475vet6(潘多拉)给的rt-thread太过臃肿,决定自己移植一遍(RT-Thread包来自正点原子中潘多拉例程)参考了野火rt-thread的手册1、建立工程文件夹,如下      CoreCore/IncCore/src用于存放用户自己的.c和.h文件 Dri......
  • STM32【HAL库】使用外部SRAM程序
    #include<board.h>#ifdefBSP_USING_SRAM#include<drv_common.h>#include<rtthread.h>#include<rtdevice.h>#defineDBG_TAG"drv_exsram"#defineDBG_LVLDBG_LOG#include<rtdbg.h>#defineRAM_HEAP_EX_START......
  • STM32_7(ADC)
    ADCADC(Analog-DigitalConverter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间输入电压范围:0~3.3V,转换结果范围:0~409518个输入通道,可测量16个外部和2个内部信号源规则组和注入组......
  • Hashtable、synchronizedMap、ConcurrentHashMap 深度比较
    关键字:Hashtable、synchronizedMap、ConcurrentHashMap深度比较util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。BrianGoetz向您展示了用ConcurrentHashMap替换Hashtable或synchro......
  • STM32单片机引脚要职能配置为输入或者输出模式,并不能像51一样准双向,那么如何进行但总
    如题随便找个端口举例对应的程序为 难道需要写之后立即初始化为输入?然后赶紧读?然后再赶紧初始化为输出?再往外写?是的,还真他妈就是这么傻逼的操作 ......
  • stm32 cubeide ST7920 12864点阵屏 U8G2移植
    准备工作【通用-移植u8g2准备工作】在cubeide中移植u8g2到STM32的准备工作源码获取和文件处理-不打鱼光晒网-博客园(cnblogs.com) 7920很老了,spi只能接受2.5M的时钟,实际上2M就大概率花屏了,使用硬件spi的话,由于分频系数选择的问题,配置为1M就行了,不然花屏7920的穿行模式仅......