ADC采集电压和显示 基于STM32的ADC—电压采集

发布者:WhisperingGlow最新更新时间:2024-09-23 来源: elecfans关键字:ADC  采集电压  STM32 手机看文章 扫描二维码
随时随地手机看文章

功能介绍放开头, 使用便捷无需愁

这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发


V3.3.0-STM32智能小车

视频: https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click

V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制、电磁循迹、RTOS等功能。

我们的智能小车用到了ADC测量电池电压的功能,这章节我们做一下。
我们的一篇在这里
[第一篇]
什么是ADC

百度百科介绍:
在这里插入图片描述
我们知道万用表 电压表可以测量电池,或者电路电压。那么我们是否可以通过单片机获得电压,方便我 们监控电池状态
在这里插入图片描述
如何测量我们的锂电池电压那?锂电池电压12V左右,单片机ADC最大测量电压3.3V,这里我们需要分 压电路分压。

在这里插入图片描述
然后我们通过电阻分压,显而易见 ADC点的电压是VBAT_IN的 五分之一

  1. 软件初始化一下ADC 。

  2. 然后注意调长一点采样时间、这样精度才会更高一点。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在adc.c文件添加ADC相关函数

在这里插入图片描述

/*******************

*  @brief  电池电压测量计算函数

*  @param  无

*  @return 小车电池电压

*

*******************/

float adcGetBatteryVoltage(void)

{

HAL_ADC_Start(&hadc2);//启动ADC转化

if(HAL_OK == HAL_ADC_PollForConversion(&hadc2,50))//等待转化完成、超时时间50ms

return (float)HAL_ADC_GetValue(&hadc2)/4096*3.3*5;//计算电池电压

return -1;

}


在main中调用显示函数显示电压
在这里插入图片描述

sprintf((char*)OledString, 'U:%.2fV', adcGetBatteryVoltage());

OLED_ShowString(0,2,OledString,12);//这个是oled驱动里面的,是显示位置的一个函数,


关键字:ADC  采集电压  STM32 引用地址:ADC采集电压和显示 基于STM32的ADC—电压采集

上一篇:从TrueSTUDIO迁移STM32CubeIDE只需要简单几步
下一篇:如何将ThreadX移植到STM32H7平台

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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