登录/注册

STM32 ADC DMA 寄存器

STM32 ADC DMA 寄存器

更多

在STM32微控制器中,ADC(模数转换器)与DMA(直接存储器访问)的协同工作能够高效实现模拟信号的连续采集。以下是关键寄存器及其功能的详细说明:


一、ADC相关寄存器

  1. ADC控制寄存器 (ADC_CR)

    • ADON:开启/关闭ADC(1=使能,0=关闭)。
    • SCAN:扫描模式(1=启用多通道扫描,0=单通道)。
    • CONT:连续转换模式(1=连续转换,0=单次转换)。
    • EOCIE:转换完成中断使能(1=允许中断)。
  2. ADC配置寄存器 (ADC_CFGR)

    • RES:分辨率设置(如12位、10位等)。
    • ALIGN:数据对齐(1=左对齐,0=右对齐)。
    • DMAEN:启用DMA传输(1=使能DMA)。
    • DMACFG:DMA循环模式(1=循环传输,适用于连续数据流)。
  3. ADC采样时间寄存器 (ADC_SMPR1/ADC_SMPR2)

    • 设置各通道的采样周期(如SMP0[2:0]对应通道0的采样时间)。
  4. ADC规则序列寄存器 (ADC_SQR1/ADC_SQR2/ADC_SQR3)

    • L:规则序列长度(转换通道数)。
    • SQx:定义转换序列中的通道编号(如SQ1为第一个转换的通道)。
  5. ADC数据寄存器 (ADC_DR)

    • 存储转换结果的数值(读取后自动清除EOC标志)。

二、DMA相关寄存器

  1. DMA通道配置寄存器 (DMA_CCR)

    • EN:通道使能(1=启动DMA传输)。
    • DIR:数据传输方向(0=外设→内存,1=内存→外设;ADC通常设为外设到内存)。
    • CIRC:循环模式(1=自动重载传输计数器,适合连续采集)。
    • MSIZE/PSIZE:内存和外设数据宽度(如00=8位,01=16位,10=32位)。
    • MINC/PINC:内存/外设地址自增(1=每次传输后地址自增)。
  2. DMA数据数量寄存器 (DMA_CNDTR)

    • 设置待传输的数据数量(如设置为N,则传输N次后停止或循环)。
  3. 外设地址寄存器 (DMA_CPAR)

    • 写入ADC数据寄存器地址(如&ADC1->DR)。
  4. 内存地址寄存器 (DMA_CMAR)

    • 指向存储ADC数据的内存缓冲区地址(如数组首地址)。
  5. 中断标志寄存器 (DMA_ISR)

    • TCIFx:传输完成标志(需手动清除)。

三、典型配置流程

  1. ADC配置

    • 使能ADC时钟(RCC->APB2ENR)。
    • 设置ADC_CFGR的DMAENDMACFG
    • 配置采样时间(ADC_SMPRx)、转换序列(ADC_SQRx)。
    • 启动ADC校准,然后使能ADC(ADON=1)。
  2. DMA配置

    • 使能DMA时钟(RCC->AHBENR)。
    • 设置DMA_CPAR为ADC_DR地址,DMA_CMAR为目标数组。
    • 配置DMA_CCR(方向、数据宽度、循环模式等)。
    • 设置DMA_CNDTR为缓冲区大小,启动DMA传输(EN=1)。
  3. 触发ADC转换

    • 通过软件(SWSTART)或外部触发启动第一次转换。

四、注意事项

通过合理配置上述寄存器,可实现高效的ADC数据采集,减少CPU负载。具体寄存器名称可能因STM32系列(如F1/F4/H7)略有差异,建议参考对应型号的参考手册。

stm32f401使用hall库HAL_DMA_Init中DMA_SxCR寄存器的配置无效怎么解决?

adc+dma采样,代码是通过cubemx生成的,调试时发现adc通过dma采集到的数据不对,通过单步仿真发现在HAL_

2024-03-15 06:16:07

STM32DMA的五大问题

一个数据传输任务。通道的数量取决于具体的STM32型号,每个通道可以独立配置,使得DMA可以同时执行多个数据传输任务。数据传输方向寄存器:该

2023-12-10 08:00:56

stm32f401使用hall库HAL_DMA_Init中DMA_SxCR寄存器的配置无效怎么处理

adc+dma采样,代码是通过cubemx生成的,调试时发现adc通过dma采集到的数据不对,通过单步仿真发现在HAL_

2023-08-05 07:36:43

STM32寄存器操作

STM32的寄存器操作在使用STM32单片机编程时一般都用ST给的库函数编程,库函数编程的底层就是对单片机

资料下载 12268 2022-01-13 15:43:16

STM32学习之DMA 直接寄存器读取

关于STM32学习分享第六章 DMA 直接寄存器读取文章目录关于STM32

资料下载 佚名 2021-12-16 16:58:56

STM32学习笔记(2)——寄存器

STM32 第二天寄存器寄存器功能:寄存器的功能是存储二进制代码,它是由

资料下载 陆军航空兵 2021-12-08 17:36:11

STM32寄存器点灯

配置寄存器使STM32最小系统板上的LED灯点亮根据原理图,要使D2点亮,需要将PC13拉低,分为以下步骤:使能GPIO的时钟配置GPIO13为输出模式配置GPIO13输出低电平一、确定有关

资料下载 5762 2021-12-08 17:21:10

STM32F103定时触发ADC+DMA传输

波的方式触发ADC;PWM模式可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比的信号。下面了解一下ARR和CC

资料下载 20615 2021-11-30 10:36:14

基于DWC2的USB驱动开发-发送相关的寄存器DMA寄存器详解

本文转自公众号,欢迎关注 基于DWC2的USB驱动开发-发送相关的寄存器DMA寄存器详解 (qq.com) 前言 如下

2023-07-16 16:42:18

当我启用ADC时,ADC寄存器ADRDY为什么不会设置?

大家好,我有这个问题。我想启动我的微控制器的 ADC,按照参考手册,它说我必须等到硬件设置 ADRDY 寄存器才能继续进行转换,但该

2022-12-02 07:41:30

求大佬分享STM32电压采集_ADC_DMA寄存器代码

求大佬分享STM32电压采集_ADC_DMA寄存器代码

2022-02-15 06:37:24

STM32 ADC寄存器简介

ADC寄存器1 、STM32 ADC 简介

2021-12-10 07:29:26

Stm32ADCDMA功能

时间进行ADC转换,这样每次都必须读ADC的数据寄存器,非常浪费时间! 2)把ADC

2021-08-19 07:02:04

STM32复位来源(寄存器版)

一篇很简单,有必要了解的文章 - STM32复位来源(寄存器版)

2020-03-14 14:13:01

关于STM32的这几个寄存器, 你知道吗?

关于STM32的这几个寄存器,你知道吗?

2020-03-06 15:19:30

7天热门专题 换一换
相关标签