当使用电池直接供电 或 外部供电低于LDO的输入电压时,会造成STM32 VDD电压不稳定,忽高忽低。
此时通过使用STM32的内部参考电压功能(Embedded internal reference voltage),可以准确的测量ADC管脚对应的电压值,精度 0.01v左右,可以满足大部分应用场景。
计算公式:
PinAdcV = (float)(3 * VREFINT_CAL * PinAdcData) / (float)(VREFINT_Data * (4096-1));
说明:
- VREFINT_CAL = *(__IO uint16_t *)(0X1FF80078);
- VREFINT_Data 即 ADC_IN17的ADC数值;
- PinAdcData 为 待测管脚的ADC数值