stm32f031c6使用 倒推VDDA电压实际值
芯片没有外置Vref的引脚
但是有一个内置的Vref
ds10111文件中有具体的描述
典型值1.23V
这个1.23V是ST在3.3v下 然后一定条件下 测量的出的,具体看下表
然后把这个测量的adc读数放在了0x1FFF F7BA - 0x1FFF F7BB里边
计算办法在RM0091文件中
但是呢
这个文件(官网下的,这个部分有一个编写错误,应该不是.3v而是3.3v,我用了N个软件打开,这里都是显示.3v,搞不懂为什么ST会犯这种错)

所以呢
根据这些信息就可以把VDDA的实际电压推算出来了
初始化直接用mxcube来做,截至今天,最高版本是6.3

首先创建一个变量用来存储组后计算得到的真实VDDA电压
float vddaCalculated;
首先需要先把地址记下来
#define VREFINT_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7BA))
然后读出来当前供电条件下的VREFINT的adc值
比如是1464
那么根据计算公式
vddaCalculated=(*VREFINT_CAL_ADDR)*3.3/ADC_Value[0];
可以计算出来VDDA现在是
实测 VDD供电电压2.28V
踏马的,怎么不对?
算了,直接写死好了
这个破JB的ST,手册都写不好,飘了

浙公网安备 33010602011771号