STM32CubeMX学习六 之ADC配置

这篇具有很好参考价值的文章主要介绍了STM32CubeMX学习六 之ADC配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

记录一下STM32CubeMX的学习笔记,同时分享给初学的小白,希望一起进步。
如何使用STM32CubeMX以及工程创建在之前的博客有提到,这里就直接从ADC配置讲起。


一、本地环境

编译环境:KEIL
代码生成:STM32CubeMX
库:HAL
MCU:STM32F072

二、开始

1.定时器配置

假设你的cubeMX工程已经建好,这里我们开始配置ADC引脚(PA1设置为ADC_IN1)如图所示:

2.引脚配置

3.内部时钟配置

配置完GPIO后开始配置时钟,我这里配置的是内部时钟,配置的24Mhz的内部时钟(HSI)如图:
STM32CubeMX学习六 之ADC配置

4.ADC参数配置

选择Analog下的ADC配置,再选择通道IN1进行配置。
ADC配置:
1、Clock Prescaler 时钟频率
2、Resolution 数据宽度
3、Data Alignment 数据对齐方式
4、Scan Conversion Mode 扫描转换模式
5、Sampling Time 采集周期
基本配置以上5个参数就可以满足需求了,其他的可自行觉得配置,如图是我所配置的,。
STM32CubeMX学习六 之ADC配置

adc转换时间越长采集越精确,可根据实际需求配置。

STM32CubeMX学习六 之ADC配置

4.代码生成

时钟配置完毕后,选择“Project Manager”到工程配置界面。
1、配置工程的名称
2、工程存储路径
3、IDE选择(如果是keil工具,选择MDK-ARM)
4、mcu依赖的cube包在哪个目录
STM32CubeMX学习六 之ADC配置

接着到“Code Generator”下选择这几个选项来生成工程:

STM32CubeMX学习六 之ADC配置

选择好过后我们就可以点击右上角的"GENERATE CODE"按键来生成代码了。
如果提示你的firmware package 缺少直接更新下载即可,如果没网状态,就需要去官网下载依赖包放在之前提到的目录下即可。

我是用一下依赖包生成得工程代码。
STM32CubeMX学习六 之ADC配置

3.编译工程

点击编译按钮对工程进行编译。
STM32CubeMX学习六 之ADC配置
在 CubeMX 生成的文件中添加用户代码的时候,必须是写在/* USER CODE BEGIN n*/和/* USER CODE
END n*/之间。这样如果需要改变 Cube 工程的配置,在重新生成代码时,在这两句注释之间的语 句不会被覆盖。而用户新建或添加的文件不会受到影响。

4.添加功能代码

我们这里工程就基本建好了,现在来实现功能代码部分。
在代码中添加如下代码就能够采集ADC了:

while(1)
{
	HAL_ADC_Start(&hadc);    //启动ADC转换
	HAL_ADC_PollForConversion(&hadc,0x10);  //等待转换完成
	ad_value = HAL_ADC_GetValue(&hadc);	//获取转换值
	HAL_Delay(500);   //正常使用别加这个延时,会导致程序卡
}

以上就配置好了ADC可自行根据需求进行,我一般没用这个模式,感觉很麻烦。我这里把它配置成了DMA的模式。

4.ADC的DMA配置

使能ADC配置中的DMA模式:
mode:循环
data width :全字
STM32CubeMX学习六 之ADC配置文章来源地址https://www.toymoban.com/news/detail-409545.html

 //使能DMA,配置DMA一直采集程序容易阻塞,开启后
 //启动后一段时间采集一次吧,别一直采集,会导致阻塞
uint32_t ADC_Value[2] = {0};
//我这里简单表示为1s采集一次
while(1)
{
	HAL_ADC_Start_DMA(&hadc,(uint32_t*)ADC_Value,2);  //使能采集函数保存到ADC_value数组内
}


创作不易,请大佬们点个赞!
有问题请留言讨论!

到了这里,关于STM32CubeMX学习六 之ADC配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 尝试使用CubeMX做stm32开发之十:ADC配置

            参考《STM32中文参考手册_V10》,研究CubeMX中有关ADC的配置。 ADC1 Mode and Configuration:         IN0~IN9:10路12位ADC采样通道,外部模拟量信号输入         Temperature Sensor Channel:MCU内置温度传感器采样通道,用来测量器件周围的温度。在MCU内部与ADC1_IN16通道相连

    2024年02月05日
    浏览(41)
  • 电机FOC控制(三)STM32 CUBEMX 配置ADC采样

    本文在电机FOC控制(二)STM32 CUBEMX 配置三相PWM互补输出基础上,继续讲述如何STM32 CUBEMX 配置ADC寄存器,使TIMER1 PWM互补输出CC4触发ADC注入采样的过程。 打开Clock Configuration界面,将ADC设置为42.5MHz。 设定ADC1通道7和通道8为单端输入: 设定ADC2通道6和通道7为单端输入: ADCs_Comm

    2024年04月23日
    浏览(40)
  • STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发)

    时钟配置HSI主频配置64M  勾选打开8个通道的ADC  使能连续转换模式  配置好串口,选择异步模式 配置好需要的开发环境并获取代码  修改main.c 串口重定向  串口重定向一定要勾选Use Micro LIB  获取ADC通道值 主函数   串口输出

    2024年02月15日
    浏览(49)
  • 野火STM32电机系列(六)Cubemx配置ADC规则和注入通道

    前文已经配置了GPIO、编码器 本节讲解CubeMXADC规则和注入通道 本文adc注入通道采用定时器触发,因此在上文定时器配置的基础上进行 常规信号(温度等)使用带DMA的常规通道连续采样 注入采样由定时器触发,采集电机三相电流,并进入adc中断执行10khz的控制程序 ADC硬件接口

    2024年02月08日
    浏览(42)
  • STM32初学入门笔记(3):STM32CubeMX配置STM32实现多通道ADC+DMA读取模拟量

    模拟信号的读取是我们在做很多项目是都要用到的,而模拟量的读取就要依赖于ADC数模转换器。对于初学者,学习使用ADC可以很大的帮助以后的STM32学习。 目录 ADC简介 : DMA简介:  工程开始: STM32CubeMX配置区: 配置外部时钟: 配置调试: 配置ADC: 配置DMA: 配置串口: 配

    2024年02月09日
    浏览(46)
  • STM32CubeMX配置STM32G031多通道ADC + DMA采集(HAL库开发)

     时钟配置HSI主频配置64M  勾选打开8个通道的ADC  使能连续转换模式  添加DMA  DMA模式选择循环模式  使能DMA连续请求 采样时间配置160.5 转换次数为8  配置好8次转换的顺序  配置好串口,选择异步模式 配置好需要的开发环境并获取代码  修改main.c 串口重定向  串口重定向

    2024年02月08日
    浏览(54)
  • STM32CubeMx配置ADC(多通道采集+DMA读取数据)(HAL库开发)

    目录 1、函数配置过程(这是标准库配置过程): 2、STM32CubeMx配置过程  3、main函数源文件 采集5路ADC数据,并用串口printf()函数打印出来。 实验现象:  ADC转换的初始条件: 1、使能 2、触发源条件完成(这个需要自己配置)利用:HAL_ADC_Start_DMA()函数; ADC中HAL开发优势就是,

    2023年04月08日
    浏览(74)
  • 【STM32】定时器1触发ADC多(规则)通道采样+DMA(CUBEMX配置)

    在用单片机做电源控制时不得不提ADC采集,离散系统是有固定的执行周期的,所以我们采样也是要固定时间去采样。然后就是我希望pwm波(定时器1产出)的频率与采样频率一致。 我下面演示的是G431CBU6,当然其他芯片也大差不差了。 说一下大致流程,TIM1触发ADC采样,然后

    2024年02月01日
    浏览(46)
  • stm32cubemx hal学习记录:电机控制

    1、配置RCC、SYS,SYS的Timebase Source选择TIM6 2、配置USART1、时钟84MHz 3、激活FreeRTOS,选择CMSIS_V1,Config parameters种USE_TIMERS选择ENABLE 1、选用TIM3的编码器模式  2、驱动使用L298N,将PB6、PB7设置为输出模式  3、使用TIM2的CH1输出1kHz的PWM 1、设置两个软件定时器,一个用于总控制,一个

    2024年02月17日
    浏览(37)
  • STM32 | STM32CubeMX基础之ADC

    一、ADC框图 ADC输入电源 2. 输入通道 这16个通道对应着不同的IO口,此外 ADC1 的通道 16 连接到了芯片内部的温度传感器,通道 17连接到了VRefInt(内部参照电压)。 3. 规则通道与注入通道 a)规则通道组: i)相当正常运行的程序。最多16个通道。规则通道和它的转换顺序在AD

    2024年02月06日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包