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

news2024/11/27 2:46:55

文章内的代码使用 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 电压值

	  //开启ADC1
	  HAL_ADC_Start(&hadc1); 
	  adc1_val = HAL_ADC_GetValue(&hadc1); // 获取ADC1 采集值
	  volt_r38 = adc1_val / 4095.0f * 3.3f; //数据梳理转换为 0 ~ 3.3 V的电压
	  
	  //开启ADC2
	  HAL_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.coloradmin.cn/o/167047.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通信电子、嵌入式类面试题刷题计划03

文章目录021——"Hello, world!"022——计算圆的面积023——打印10x10的星号024——字符串打印025——打印26个英文字母026——strlen函数的用法027——sizeof函数的使用028——if else、变量赋值语句029——if else语句030——if elseif else语句,判断是…

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 ( 七)求两个数的差值

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 (七)求两个数的差值 🔈声明: 😃博主主页:王_嘻嘻的CSDN博客 🧨未经作者允许,禁止转载 🔑系列专栏:牛客Ve…

Redis作为缓存应用场景分析

为什么使用缓存 Redis是一个内存型数据库,也就是说,所有的数据都会存在与内存中,基于Redis的高性能特性,我们将Redis用在缓存场景非常广泛。使用起来方便,响应也是远超关系型数据库。 应用场景 Redis的应用场景非常…

绝了,超越YOLOv7、v8,YOLOv6 v3.0正式发布

超越YOLOv7、v8! YOLOv6 v3.0正式发布!!! YOLOv6 全新版本v3.0正式发布!引入新的网络架构和训练方案,其中YOLOv6-S以484 FPS的速度达到45.0% AP,超过YOLOv5-S、YOLOv8-S,其代码刚刚开源 由于前段时间Ultralytics公司透露出V8的发…

马哥架构第2周课程作业

haproxy、nginx、lvs负责均衡相关的话题一. nginx和haproxy的异同点二. 实现haproxy四层地址透传,并且做基于cookie的会话保持2.1 haproxy四层地址透传2.2 基于cookie的会话保持2.2.1 配置选项2.2.2 配置示例2.2.3 验证 Cookie 信息三. 实现自定义错误页面和https的…

【学习笔记】【Pytorch】12.损失函数与反向传播

【学习笔记】【Pytorch】12.损失函数与反向传播一、损失函数的介绍1.L1Loss类的使用代码实现2.MSELoss类的使用3.损失函数在模型中的实现二、反向传播一、损失函数的介绍 参考: 损失函数(loss function) pytorch loss-functions 文档 作用&…

【JavaEE】基于TCP的客户端服务器程序

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaEE】 ✈️✈️本篇内容:基于TCP的客户端服务器程序。 🚀🚀代码存放仓库gitee:JavaEE初阶代码存放! ⛵⛵作者…

【JavaEE初阶】第二节.进程篇

文章目录 前言 一、操作系统 二、进程 2.1 进程的概念 2.2 进程的管理​​​​​​​​​​​​​​ 2.3 PCB 2.3.1 PCB里面的一些属性 2.3.2 进程的调度 2.3.3 进程的虚拟地址空间 2.3.4 进程间通信 总结 前言 本节内容我们继续对JavaEE的有关内容进行学习,…

汽车智能化,集度做加法

CES2023刚刚落下帷幕,这场名为“国际消费电子展”的业界盛会,近几年重心正明显转向智能汽车及其周边产业链。在2022年的CES上,集度与英伟达宣布合作,也透露了智能汽车研发的相关计划。而在本届CES之前、2022年末的广州车展上&…

一个关于image访问图片跨域的问题

一、背景 项目中遇到一个问题,同一个图片在 dom 节点中使用了 img 标签来加载,同时由于项目使用了 ThreeJS 3D 渲染引擎,在加载纹理时使用了 TextureLoader 来加载了同一张图片,而由于图片是在阿里云服务器上的,所以最…

SourceTree 拉取、重置提交、回滚、变基与合并

SourceTree的重置当前分支到此次提交 使用场景:“我想把已提交未推送的修改撤销” 使用模式说明软合并软合并是指将此次提交回滚到指定提交位置,但这个过程中会将修改过的文件暂存到暂存区。混合合并混合合并是指将此次提交回滚到指定的位置&#xff0c…

本来挺喜欢刷《剑指offer》的.......(第十一天)

跟着博主一起刷题 这里使用的是题库: https://leetcode.cn/problem-list/xb9nqhhg/?page1 目录剑指 Offer 66. 构建乘积数组剑指 Offer 68 - I. 二叉搜索树的最近公共祖先剑指 Offer 68 - II. 二叉树的最近公共祖先剑指 Offer 66. 构建乘积数组 剑指 Offer 66. 构建…

使用react-bmapgl绘制区域并判断是否重叠

需求如下: 在react项目中使用百度地图实现区域(电子围栏)的绘制绘制的区域类型为:1、多边形 2、圆形可绘制多个区域区域不能有重叠可重新编辑区域 代码如下: index.tsx import { useCallback, useEffect, useState } from rea…

Python入门实践(二)——变量的使用

文章目录变量1、变量的命名和使用1.1、避免命名错误2、字符串2.1、修改字符串大小写2.2、合并(拼接)字符串2.3、使用制表符或换行符来添加空白2.4、删除空白3、数字3.1、整数3.2、浮点数3.3、使用str()避免类型错误4、注释变量是对一种数据结构的命名&am…

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

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

MPP数据库简介及架构分析

目录什么是MPP?特性并行处理超大规模数据仓库真正适合什么典型的分析工作量数据集中化线性可伸缩性MPP架构技术特性数据库架构分析Shared EverythingShared DiskShare MemoryShared NothingShared Nothing数据库架构优势什么是MPP? MPP (Massively Paral…

分享88个C源码,总有一款适合您

C源码 分享88个C源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。 源码下载链接:https://pan.baidu.com/s/1TT87gt66kn5BtLqgRUTlUQ?pwdwje5 提取码…

Java图形化界面---JOptionPane

目录 一、JOptionPane的介绍 二、JOptionalPane的使用 (1)消息对话框 (2) 确认对话框 (3)输入对话框 (4)选项对话框 一、JOptionPane的介绍 通过JOptionPane可以非常方便地创建…

SpringCloud复习之Sleuth+Zipkin链路追踪实战

文章目录写作背景为什么要有链路监控SpringCloud SleuthZipkin能做什么上手实战启动一个Zipkin Server微服务集成SleuthZipkin写作背景 前面复习了SpringCloud Netflix的几个核心组件,包括Eureka、Ribbon、Feign、Hystrix、Zuul,并进行了Demo级别的实战…

高精度减法【c++】超详细讲解

前言 大家学过高精度加法之后,可能已经知道高精度减法的实现方法了吧 如果你还没有学过高精度加法的话,请点击这里(很详细的)—>高精度加法【C实现】详解 最大的问题 最大的问题莫过于负数问题了。其他方法和加法一样。 负…