STM32CubeMx入门教程(5):ADC应用

发布者:beta12最新更新时间:2024-04-16 来源: elecfans关键字:STM32CubeMx  ADC应用 手机看文章 扫描二维码
随时随地手机看文章

导语“在本次教程中我们使用指南者开发板的ADC功能,实现ADC电压采样转换。本项目在USART项目(参考USART章节)的基础上配置ADC,通过将采集到的数据转化为电压值在串口上打印出来。”

第一节 系统要求

•硬件

野火指南者开发板

•软件

CubeMx &MDK & 串口调试助手

•原理图

图片

第二节 CubeMX配置

在CubeMx 中设置ADC,选择PC1对应的11通道,ADC1,参数根据下图设置:

图片

第三节 MDK代码编写

CubeMx 初始化代码配置后使用MDK打开项目,主main.c 文件中添加电压转化函数和定义变量:


float adc_conv_value(uint16_t value);uint16_t adc_value;  // 采集到的数据float adc_con_value;  // 转化后的实际电压值在main.c 的自定义代码段4编写转换函数:/*电压参考值为3.3V ADC 为12位,4096**/float adc_conv_value(uint16_t value){     

       return (float)value/4096*3.3; //ADC 转换后的值转换为实际的电压值}

在main函数的主循环while中添加ADC采样和打印采样电压值的函数:


// 代码开始从这儿写:HAL_ADC_Start(&hadc1);HAL_ADC_PollForConversion(&hadc1, 10);

adc_value=HAL_ADC_GetValue(&hadc1);

printf('ADC1 channel 11 value=%4d\r\n',adc_value);

adc_con_value=adc_conv_value(adc_value);

printf('ADC1 channel 11 real V value=%4.3f\r\n',adc_con_value);HAL_Delay(500);

编译项目后下载到开发板中。

第四节 效果演示

现在我们通过串口打印采集的实际值和转换后的电压值:

图片

可以通过调节滑动变阻器观察采集到数据变化,value是12位的整数值,realVvalue是转化后的实际电压值。

代码分析:

(1)HALADCStart(&hadc1); 是启动ADC1转换。

(2)HALADCPollForConversion(&hadc1, 10);是等待转换结束。

(3)adcvalue=HALADC_GetValue(&hadc1);是获取转换结果。

(4)adcconvalue=adcconvvalue(adc_value);是自定义的转换结果转化为实际电压值的函数。


关键字:STM32CubeMx  ADC应用 引用地址:STM32CubeMx入门教程(5):ADC应用

上一篇:STM32单片机看门狗的配置方法
下一篇:使用STM32调试FMSDR模块及解调FM电台(4)

推荐阅读最新更新时间:2026-03-20 21:03

ADC模块规则通道同时转换应用介绍
有人使用STM32F303VC开发电源方面的产品,想使用4个ADC模块进行同时采样转换,感觉不知怎么实现。这里简单介绍下实现过程,以供参考。 现在希望四个ADC模块同时进行AD转换。我们使用双ADC主从模式,ADC1与ADC2成为一组,构成主从模式。同样,ADC3与ADC4也成为一组构成主从模式。其中,ADC1和ADC3分别为各组中的主,并让两组都工作在同时转换模式,对规则通道进行ADC转换。 它们的转换使用同一定时器事件来触发,这里选择TIM4的更新事件来触发所有ADC的转换。如下图所示,主ADC的CH1与从ADC的CH16同时进行转换,主ADC的CH2与从ADC的CH14同时进行转换,就这样依次按照红色箭头方向进行。
[单片机]
双<font color='red'>ADC</font>模块规则通道同时<font color='red'>转换</font>的<font color='red'>应用</font>介绍
高性能、高鲁棒性的ADC如何应对现代工业应用的设计挑战
本文介绍 新一代多路复用模数转换器(ADC)如何提供更多通道、更深入的信号链集成、灵活性和鲁棒性优势 ,以简化复杂系统设计,从而支持在先进工厂和生产设施中实现自动化和过程控制。 简介 在现代生产设施中,适当的模拟前端(AFE)对于实现稳定可靠、精密准确的模数转换至关重要。由于不同系统和机器之间存在差异,通常情况下,可以使用可编程逻辑控制器(PLC)来控制许多复杂的参数。为此,将通过模拟输入模块来利用不同的传感器和信号。许多传感器(例如压力、流量、温度和称重量传感器)提供代表所测参数量的模拟输出。因此,需要许多精密准确的模拟信号输入来生成数字输出。然而,模数转换只是工作任务的一部分。生产设施中的节点、传感器、模拟输入模块和
[模拟电子]
高性能、高鲁棒性的<font color='red'>ADC</font>如何应对现代工业<font color='red'>应用</font>的设计挑战
基于STM32多通道ADC综合应用示例
有人使用STM32芯片做产品开发,需用到多个通道的ADC转换。大致需求是这样的: 有2个ADC通道需要每10ms启动一次转换,另外5个通道希望50ms启动一次转换。试问如何实现上述功能比较好。 这里不妨以STM32F302芯片为例,来介绍两种实现上述功能的大致方案以供参考。方案里涉及到ADC规则通道、注入通道的使用、DMA的使用、定时器的灵活使用,具备一定综合性。下面介绍以贴图为主,没法一点一滴做解释了。 第一种方案,我们使用ADC1模块的CH1到CH7连续的7个通通来做AD转换,其中CH6/CH7配置为注入通道【我将其戏称之为插队通道】,另外5个通道配置为规则通道。 其中,规则通道的触发选用TIM1的触发输出信号
[单片机]
基于STM32多通道<font color='red'>ADC</font>综合<font color='red'>应用</font>示例
Keil5安装+STM32CubeMX安装+VSCode辅助开发教程
本文介绍STM32相关开发工具的安装,包括: Keil5安装 STM32CubeMX安装 VSCode辅助开发 所有需要使用到的安装包下载链接:通过百度网盘分享的文件:embedded-packge.rar 链接:https://pan.baidu.com/s/1XW72C96-WjeZ6hGhTgJ56A?pwd=4jfh 提取码:4jfh 注意:如果你想用VSCode来辅助Keil5开发,网上有很多教程叫你把原来的软件卸载掉,其实没有必要!!!我们只是把VSCode当作代码编辑器,调试和编译交仍然给keil来完成! 视频教程链接: Keil5安装教程_哔哩哔哩_bilibilihttps://www.bilibil
[单片机]
STM32CubeMx GPIO口输出
stm32用hal库建立工程通用且方便,用的人也越来越多了,正点原子之前也有hal库的书还有例程,但是正点原子hal库的例程是以调用hal库的形式制作的,没有直接从cube的建立工程开始做起,并且在使用的过程中有根据项目更改过库函数。网上STM32Cube的教程也大多是v4、v5版本,和v6相比很多界面和功能有所变化,所以写了这个。文中部分内容参考正点原子开发指南和网上的文章教程。 工作环境: STM32CubeMXv6 Keil5 如果仅仅使用GPIO口执行输入输出的操作,那么RCC时钟,晶振,时钟树和中断都是可以不用配置使用默认的,建立工程后左键点击需要打开的IO口后选择GPIO_OUTPUT或GPIO_INPUT。
[单片机]
STM32CubeMX保姆级安装教程
STM32CubeMX 简介: STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。 在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码, 省去了我们配置各种外设的时间,大大的节省了时间。 安装CubeMx一共需要三个东西: JRE (Java Runtime Environment) Java运行环境 运行JAVA程序所必须的环境的集合 STM32CubeMX.exe STM32 HAL固
[单片机]
基于STM32CUBEMX驱动TMOS模块STHS34PF80(2)----驱动STHS34PF80进行人体检测
概述 STHS34PF80 是一款非冷却、工厂校准的红外运动和存在检测传感器,工作波长在 5 µm 至 20 µm 之间。STHS34PF80 传感器设计用于测量视野内物体发出的红外辐射量。该信息由 ASIC 进行数字处理,可以对其进行编程以监控运动、存在或过热状况。 本章主要驱动STHS34PF80,进行人体检测。 最近在弄ST和瑞萨RA的课程,需要样片的可以加群申请:6_15061293 。 样品申请 https://www.wjx.top/vm/OhcKxJk.aspx# 视频教程 https://www.bilibili.com/video/BV18z4y1g7BA/ 完整代码下载 https://downlo
[单片机]
基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(3)----定时器中断产生指定数量脉
概述 在步进电机控制过程中,为了实现精确的位置和速度控制,经常需要输出指定数量的脉冲。这就需要使用定时器功能来生成PWM脉冲信号。 本文将详细介绍如何利用STM32CUBEMX配置定时器以输出指定数量的PWM脉冲。 定时器是STM32微控制器的一个重要功能模块,可用于生成各种定时和计数操作。通过合理配置定时器的参数和模式,我们可以实现精确的脉冲输出。 样品申请 https://www.wjx.top/vm/PpC1kRR.aspx 视频教学 https://www.bilibili.com/video/BV1k94y1C7Gw/ 完整代码下载 https://download.csdn.net/download/qq_
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved