功能介绍放开头, 使用便捷无需愁
这是全网最详细、性价比最高的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的 五分之一
- 软件初始化一下ADC 。
- 然后注意调长一点采样时间、这样精度才会更高一点。
在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
+关注
关注
99文章
6546浏览量
546223 -
STM32
+关注
关注
2275文章
10932浏览量
358312 -
电压采集
+关注
关注
2文章
22浏览量
14301 -
HAL库
+关注
关注
1文章
121浏览量
6424
发布评论请先 登录
相关推荐
使用STM32L031F6在hal库下进行ADC+DMA多通道采集,采集的电压值始终为0的原因?
【HAL库每天一例】第021例:ADC-单通道采集(电位器)
【HAL库每天一例】第023例:ADC-多通道采集(DMA)
STM32 HAL库 CUBEMX配置 ADC采集 精选资料分享
STM32 HAL库 CUBEMX配置 ADC采集

STM32F103+ADC采集实时电压+LCD1602A显示

评论