我是靠谱客的博主 贪玩鸭子,最近开发中收集的这篇文章主要介绍怎么根据读到的ADC值,推算实际电压值(二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

 XX  作       者:文化人

 XX  联系方式:

 XX  版权声明:原创文章,欢迎评论和转载~转载时能告诉我一声就最好了

 XX  要说的话:作者水平有限,难免有不足之处,恳请指正!

 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

写在前面:接上一篇文章,理论上能够根据读到的ADC值,推算出实际电压值;但是,对于管脚少于64pin封装的STM32芯片,采用的ADC参考电压是内部电源引脚上的输入电压,所以,就有可能造成不同的锂电池、LDO会有不同的参考电压值,虽然STM32可以正常工作,但是参考电压不同,就会造成根据读到的ADC值,推算的电压值并不准确。

无独有偶,笔者在实际开发中就遇到了这样的问题:在研发新项目时,延用了上个项目的电压处理模块,由于上个项目使用的是3V的LDO,而目前项目使用的是3.3V的LDO,这就导致在新项目里推算出的电压值出现了拐点,如下图:

由于出现了拐点,所以低电判断就不准确,后来根据数据手册,找到了两个内部的ADC通道,这个参考电压值的典型值为1.20V,而且基本不随外部供电电压的变化而变化。

STM32的ADC可以直接测量2个内部信号源,其中一个是温度传感器,另一个是内部参考电压。其中,温度传感器和通道ADCx_IN16相连接。内部参考电压VREFINT和ADCx_IN17相连接。

具体操作方法为:在测量某个通道的电压值之前,先读出ADCx_IN17引脚参考电压的ADC转换数值,记为AD_CH17,再读出要测量通道的ADC的转换数值,记为AD_CHX。则要测量的电压数值为:

V_CHX = 1.2 * 100 * (AD_CHX / AD_CH17);

因为用到浮点运算,所以扩大100倍,便于比较,注意把电压检测的间隔调大一点,保证浮点运算的时间;

注:必须设置TSVREFE位激活内部通道:ADCx_IN16(温度传感器)和ADCx_IN17(VREFINT)的转换

最后

以上就是贪玩鸭子为你收集整理的怎么根据读到的ADC值,推算实际电压值(二)的全部内容,希望文章能够帮你解决怎么根据读到的ADC值,推算实际电压值(二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部