stm32单片机48引脚的adc精度问题

我用单片机自带的基准电压测量
VDDA = 3 V x VREFINT_CAL / VREFINT_DATA
转换出来3.42v 实际值3.55v
Temperature = (130 °C- 30 °C) /(TS_CAL2 - TS_CAL1 )× (TS_DATA - TS_CAL1) + 30 °C
算出来单片机温度直接43度多,感觉完全没法用
有啥方法可以提高精度
已邀请:
ADC采样后存到一个数组,利用冒泡法排序,去掉最大的前几个值,去掉最小的后几个值,其余数值求平均,这样下来,你的ADC就是稳定的准确值

Once

赞同来自:

你没明白我的意思,我是指基准,基准都那么大的误差,其他的全白搭

homeschooler

赞同来自:

我用的f303vc芯片,f3discovery,读出输入电压12位数据之后,如果按照vref对应读数4096计算,误差好几十毫伏。实际采集vref比4096小几十,按这个实际的基准,计算得出的电压精度不错了,基本符合精度规格。

Once

赞同来自:

我来说明下,用的电池供电,型号stm32l051c8,用这个单片机主要看的是功耗低,电池随着使用供给的vdda就不是一个确定值,所以我想用verf来算出vdda,但发现算出来的和实际的vdda偏差大

Once

赞同来自:

上图

Once

赞同来自:

我买了几个基准电压,max6001,万用表测了2个,一个1.25v,一个1.29v,用单片机采集,结果算出来vdda是3.37左右,vdda和实际不符

manong

赞同来自:

楼主解决了么?我这边发现读出的参考值一直在变化,受温度影响较大

要回复问题请先登录注册