×
单片机 > 单片机程序设计 > 详情

STM32测量外部电池电压值时参考电压解决方法

发布时间:2020-08-25 发布时间:
|

STM32的ADC模块是一个12位的逐次逼近型模拟数字转换器。他有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式储存在16位数据寄存器中。

其中,ADC的供电要求是2.4V到3.6V,ADC输入范围:VREF-LDO造成不同的参考电压值,虽然STM32是可以正常工作,但是参考电压的不同,也就造成我们使用ADC采集外部模拟信号值时,无法还原真实数据。所以,在这里介绍一下STM32的内部2个ADC通道。

STM32的ADC可以直接测量2个内部信号源,其中一个是温度传感器,一个是内部参考电压。

其中,温度传感器和通道ADCx_IN16相连接。内部参考电压VREFINT和ADCx_IN17相连接。

根据数据手册中的数据,这个参考电压值的典型值为1.20V,最小值为1.16V,最大值为1.24V。这个电压基本不随外部供电电压的变化而变化。

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

V_CHX=V_REFINT*(AD_CHX/AD_REFINT)

其中,V_REFINT为参考电压:1.2V(典型值)。

在STM32提供的库函数中,如果要开启内部参考电压功能,使用的库函数和开启温度内部温度传感器的函数是一样的,只是在后面采集ADCx_Channel_x通道的时候不同而已。开启函数为:                           ADC_TempSensorVrefintCmd(ENABLE);

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

关于操作源码,可以参考正点原子不完全手册 第二十一章 内部温度传感器实验,对于内部电压值的测量和温度传感器的方法是一样的,只是使能的ADC通道不一样,其他都是一样的,所以,可以直接参考。


关键字:STM32  电池电压值  参考电压

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址