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,手册都写不好,飘了

 

posted @ 2021-11-23 13:36  不打鱼光晒网  阅读(540)  评论(0)    收藏  举报