蓝桥杯 stm32 实现 ADC 采集数据功能 CubeMX

news/2024/10/30 9:22:22/

文章内的代码使用 HAL 库。
ADC 即 模数转换器,是指 将 连续变化的模拟信号 转换成 离散的数字信号 的器件

文章目录

  • 前言
  • 一、ADC 原理图
  • 二、CubeMX 配置
  • 三、ADC 代码讲解
  • 总结


前言


一、ADC 原理图

在这里插入图片描述
从原理图我们可以看到 STM32G431 内部集成 两个 最高位 12 位 的 ADC :。ADC1 , ADC2

对应的 可变电阻 是 R38 , R37
对应的 IO 接口是 PB12 , PB15

通过 改变 可变电阻,可以得到不同的电压值
VDD 接的电压是 0 ~ 3.3V。


二、CubeMX 配置

(1)配置 RCC (异步)
在这里插入图片描述

(2)配置 PB12 ,PB15。(显示是黄色的,不要担心,我们只是没有配置模式,第三步会配置)

在这里插入图片描述

(3)配置 PB12 的 ADC1_IN11 为 单端模式。(这时我们发现 PB12引脚编程绿色了,就选定好了)

在这里插入图片描述

同理 我们配置 PB15 的 ADC2_IN15 为 单端模式

在这里插入图片描述

(4)配置 工程模式 和 版本

在这里插入图片描述

(5)选取加入.c /.h文件(便于编写代码)

在这里插入图片描述

(6) 创建工程

在这里插入图片描述


三、ADC 代码讲解

HAL_ADC_Start : 函数来启动 ADC。
HAL_ADC_GetValue :获取采样值。

STM32G431 内部集成 两个 最高位 12 位 的 ADC,则它的分辨率为 1 / 4096。
由于板子的 VDD 接的电压是 0 ~ 3.3V。所以我们 经过 adc1_val / 4095.0f * 3.3 f 数据处理 , 可以得到需要的电压。

	uint16_t adc1_val; //ADC1 采样值uint16_t adc2_val; //ADC2 采样值float volt_r38, volt_r37; //ADC1,ADC2 电压值//开启ADC1HAL_ADC_Start(&hadc1); adc1_val = HAL_ADC_GetValue(&hadc1); // 获取ADC1 采集值volt_r38 = adc1_val / 4095.0f * 3.3f; //数据梳理转换为 0 ~ 3.3 V的电压//开启ADC2HAL_ADC_Start(&hadc2);adc2_val = HAL_ADC_GetValue(&hadc2); // 获取ADC2 采集值volt_r37 = adc2_val / 4095.0f * 3.3f; //数据梳理转换为 0 ~ 3.3 V的电压

总结

下一节我们讲解 LCD 屏幕。


http://www.ppmy.cn/news/12780.html

相关文章

【计算机体系结构-01】指令集体系结构、微体系结构简介

1. “虚拟” to “现实” 首先可以看这张图片,下面的 Physics 所指的是我们的物理世界中看得见摸得到或者是客观存在的事物,而人类希望将自己的工作内容或者需求以某种方式映射到物理层面上,用物理变化带来的影响来完成人类工作内容。例如早期…

【高并发内存池】第一弹之定长内存池

#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<vector> #include<time.h> using std::cout; using std::endl;#ifdef _WIN32#include<windows.h> #else // #endif// 直接去堆上按页申请空间 inline static void* SystemAlloc(size_t…

【linux kernel】Linux设备驱动模型 | bus

文章目录一、导读二、与总线相关的数据结构&#xff08;2-1&#xff09;struct bus_type&#xff08;2-2&#xff09;struct subsys_private三、总线的初始化四、总线的操作接口&#xff08;4-1&#xff09;总线的注册&#xff08;4-2&#xff09;总线的注销&#xff08;4-3&am…

AppScan介绍和安装

第一节-AppScan介绍和安装 1.简介 Appscan 10中文版是是全新网络安全漏洞扫描软件&#xff0c;软件可以直接可以对OS命令、SSRF和XXE攻击等漏洞进行检测&#xff0c;使得漏洞检测更加容易&#xff0c;提高漏洞的扫描效率。软件同时支持动态、静态、互动分析三种不同的测试功能…

Cadence OrCAD: 层次化设计中的电源和地符号

Cadence OrCAD: 层次化设计中的电源和地符号 层次化设计操作步骤&#xff1a;Cadence OrCAD: 层次化设计 Hierarchical Design 本文介绍一个小问题&#xff1a;分层设计中的电源和地符号的作用范围。 电源符号默认作用范围 OrCAD中电源和地符号默认是全局的&#xff0c;也就…

【BP靶场portswigger-客户端14】点击劫持-5个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

第五届字节跳动青训营 前端进阶学习笔记(二)JavaScript编码规范

文章目录1.前言2.写好JS的一些基本原则这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天 1.前言 本次课程主要讲解了有关JavaScript编码原则和代码优化的相关问题。 重点内容&#xff1a; HTML、CSS、JS各司其责具备正确性、扩展性、复用性的组件封装函数式编程思想代…

2023年基建工程(设计规划施工)经验分享,超多干货

为了彻底打通从工程外业勘探调查、数据资料整理&#xff0c;到内业详细设计之间的一系列障碍&#xff0c;结合工程外业调查的特点&#xff0c;基于安卓&#xff08;Android&#xff09;操作系统&#xff0c;精心打磨推出了“外业精灵”移动端应用软件。 该系统把工程外业探勘、…