2025年第16届蓝桥杯嵌入式竞赛学习笔记(十):ADC测量电压

devtools/2025/2/27 15:40:38/

1.原理图

VDD的最大值为3.3V,所以PB15测量电压值的范围为0~3.3V,然后它读取到的AD值为0~4096,所以电压测量公式为

为什么是4096,因为ADC是一个12比特的

2.CubeMX配置

将PB15引脚配置为ADC2_IN15,PB12配置为ADC1_IN11

打开ADC1的配置界面,找到IN11,选择Single ended模式

打开ADC2配置界面,将IN15-Single ended打勾

配置完成后点击右上角生成代码

3.代码部分

编写获取电压的函数

double get_vol(ADC_HandleTypeDef *hadc)
{HAL_ADC_Start(hadc);uint32_t adc_value = HAL_ADC_GetValue(hadc);return 3.3 * adc_value / 4096;
}

LCD函数

void lcd_show(void)
{sprintf(Temp,"R38_Vol:%.2f",get_vol(&hadc2));LCD_DisplayStringLine(Line2,(uint8_t *)Temp);sprintf(Temp,"R37_Vol:%.2f",get_vol(&hadc1));LCD_DisplayStringLine(Line4,(uint8_t *)Temp);
}

烧录完成后,扭动开发板上的R37与R38旋钮,屏幕上的电压值变化随旋钮变化。


http://www.ppmy.cn/devtools/163097.html

相关文章

Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(四)

控制面板自我刷新 (PSR) ADS 功能使用 PSR 来避免切换过程中出现故障。 具体来说,使用 PSR1(全屏更新模式)时,GPU0 和 GPU1 无需协商使用哪种 PSR 模式。 即使在 PSR1 中,面板也需要支持以下的可选功能: …

设计模式教程:模板方法模式(Template Method Pattern)

一、概述 模板方法模式(Template Method Pattern) 是一种行为型设计模式,旨在定义一个操作中的算法骨架,而将一些步骤的具体实现延迟到子类中。通过模板方法模式,父类可以不改变算法结构的情况下,让子类重…

Java【网络原理】(1)初识网络

目录 1.前言 2.正文 2.1基础知识 2.2协议分层(tcp/ip五层网络模型) 2.3网络数据通信的基本流程 2.3.1数据发送过程 2.3.2数据接收过程 3.小结 1.前言 断更又是许久,再次回归又是一个新的开始,希望我们都能继加油。今天来…

【UCB CS 61B SP24】Lecture 16 - Data Structures 2: ADTs, BSTs学习笔记

本文首先介绍了抽象数据类型与树的概念,接着重点讲解二叉搜索树的定义与操作方式,并用 Java 实现一个标准的二叉搜索树结构。 1. 抽象数据类型 首先引入一个概念叫做抽象数据类型(Abstract Data Type,ADT)&#xff0…

计算机网络之传输层(传输层的功能)

一、数据分段与重组 传输层从会话层接收数据,并将其分割成较小的数据段,以适应网络层的最大传输单元(MTU)限制。在目的端,传输层负责将这些数据段重新组合成原始数据,确保数据的完整性和正确性。 二、端口…

MySQL索引失效

MySQL索引失效会导致查询性能下降,常见原因及解决方案如下: 一、使用OR条件 原因:当OR条件中有一个列没有索引时,索引可能失效 解决方法:确保OR条件中的所有列都有索引,或使用UNION替代OR -- 不推荐 SE…

基于Springboot的小说网站【附源码】

基于Springboot的小说网站 效果如下: 系统主页面 书库信息页面 书籍详情页面 推荐信息页面 小说推荐页面 书库信息页面 小说排行榜页面 系统管理页面 研究背景 随着互联网技术的快速发展,网络文学逐渐成为一种新兴的文学形式,吸引了大量读…

docker 部署 rocketmq

RocketMQ 是一个分布式消息中间件,使用 Docker 可以方便地进行部署。 拉取 RocketMQ 镜像 首先,拉取 RocketMQ 的官方镜像: docker pull apache/rocketmq:latest部署 NameServer 创建数据卷目录: mkdir -p /usr/local/rocket…