STM32Cubemx——ADC采集+DMA传输

STM32Cubemx——ADC采集+DMA传输文章目录一、准备工具二、前置知识1.ADC简介2.DMA简介2.STM32Cubemx配置1.新建工程2.时钟源选择及时钟树配置3.时基选择调试接口选择4.配置ADC采集1.选择要配置为ADC采集的引脚2.开启DMA传输,非循环模式3.选择分辨率,使能ADC持续转换4.选择触发源5.生成工程3.Keil编写代码总结一、准备工具STM32F407VE核心板STM32Cubemx版本6.0.1Keil版本5.31杜邦线ST-Link二、前置知识1.ADC简介12位ADC是逐次

大家好,欢迎来到IT知识分享网。

一、准备工具

STM32F407VE核心板
STM32Cubemx 版本 6.0.1
Keil 版本 5.31
杜邦线
ST-Link

二、前置知识

1.ADC简介

12 位 ADC 是逐次趋近型模数转换器。它具有多达 19 个复用通道,可测量来自 16 个外部源、两个内部源和 VBAT 通道的信号。这些通道的 A/D 转换可在单次、连续、扫描或不连续采样模式下进行。ADC 的结果存储在一个左对齐或右对齐的 16 位数据寄存器中。
ADC采集通道分为两组,规则转换和注入转换,每个组包含一个转换序列, 该序列可按任意顺序在任意通道上完成,可理解为注入转换的优先级比规则转换高。本节只使用一个ADC通道,使用规则通道。

2.DMA简介

直接存储器访问 (DMA) 用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输。可以在无需任何 CPU 操作的情况下通过 DMA 快速移动数据。这样节省的 CPU 资源可供其它操作使用。DMA 控制器基于复杂的总线矩阵架构,将功能强大的双 AHB 主总线架构与独立的 FIFO 结合在一起,优化了系统带宽。两个DMA 控制器总共有 16 个数据流(每个控制器 8 个),每一个 DMA 控制器都用于管理一个或多个外设的存储器访问请求。每个数据流总共可以有多达 8 个通道(或称请求)。每个通道都有一个仲裁器,用于处理 DMA 请求间的优先级。

2.STM32Cubemx配置

1.新建工程

在这里插入图片描述
选择相应单片机型号

2.时钟源选择及时钟树配置

在这里插入图片描述
在这里插入图片描述

3.时基选择调试接口选择

在这里插入图片描述

4.配置ADC采集

1.选择要配置为ADC采集的引脚

在这里插入图片描述

2.开启DMA传输,循环模式

在这里插入图片描述

3.选择分辨率,使能ADC持续转换,DMA持续请求

当然分辨率越高,转换所需时间就越长
在这里插入图片描述

4.选择触发源

在这里插入图片描述
在此我选择了软件触发,也可以使用定时器的PWM信号来触发,可以使采集间隔时间固定,可用来分析信号波形,幅频特性等。

5.生成工程

在这里插入图片描述
在这里插入图片描述
生成并打开工程。

3.Keil编写代码

/* USER CODE BEGIN PV */
uint16_t ADC_Value[100]={0};  
uint32_t Value=0;   //存储平均值
float V=0;      //存储电压值
/* USER CODE END PV */

为提高准确度,定义数组,取平均值做为测量值

  /* USER CODE BEGIN 2 */
   HAL_ADC_Start_DMA(&hadc1,(uint32_t *)ADC_Value,100);
  /* USER CODE END 2 */

在初始化后开启DMA传输,ADC开始转换

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
         
          for(int i=0;i<100;i++)
          Value+=ADC_Value[i];//求和
          Value/=100;  //取平均值
          V=Value*3300/4096;  //ADC最大值为4096,代表3300mV
          HAL_Delay(10);
  }
  /* USER CODE END 3 */
}

主循环内对采集数据求平均,并计算出实际电压。

4.烧录观察

烧录代码后,通过调试观察V变量,可以测量0-3.3V电压(单位mV),如果需要测量更大范围,需要加外围电路,将电压规整到0-3.3V内。

工程下载地址

链接:https://pan.baidu.com/s/1IU4tsS8mzrc5AzWH7XbfhA
提取码:csa1

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22398.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信