【CH579M】ADC測的不是特別準,求幫忙看下

用的10K/30K電阻分壓測電池電壓,引腳電壓范圍在2.25V-3.15V左右,用萬用表實測引腳電壓是2.591V,程序測出電壓在2.54091787V(_temp_vol 變量),差了有50mv

初始化代碼:

/**
??*?@brief??
??*?@note???battery?detection?init
??*?@param??
??*?@retval?
??*/
void?board_battery_init()
{
	/*?ADC?*/
	/*?Enable?port?*/
	GPIOA_ModeCfg(BATTERY_En_Pin,?GPIO_ModeOut_PP_5mA);
??BATTERY_ENABLE;
	
	GPIOA_ModeCfg(BATTERY_Pin,?GPIO_ModeIN_Floating);
	ADC_ExtSingleChSampInit(?SampleFreq_3_2,?ADC_PGA_1_2?);
/*?
????注意:數(shù)據(jù)校準包括?粗調(diào)和細調(diào):
????ADC_DataCalib_Rough()?是粗調(diào)函數(shù),調(diào)用前需保證PA5引腳配置浮空輸入模式,外部沒有電壓信號,在ADC初始化之后調(diào)用,一般調(diào)用一次,除非更改了ADC模式(增益改變)
????ADC_DataCalib_Fine()?是細調(diào)函數(shù),對于粗調(diào)過的數(shù)據(jù)進行擬合算法運算,得到更精確數(shù)據(jù)
*/?
	GPIOA_ModeCfg(GPIO_Pin_5,?GPIO_ModeIN_Floating);
	RoughCalib_Value?=?ADC_DataCalib_Rough();??//?用于計算ADC內(nèi)部偏差,記錄到全局變量?RoughCalib_Value中?
	/*?校準設(shè)置模式降功耗?*/
	GPIOA_ModeCfg(GPIO_Pin_5,?GPIO_ModeIN_PU);
	
}


測量代碼:

image.png


排版把我給整懵了...


1, ch579 的adc 內(nèi)部參考電壓是1.05 +/- 0.015v;

2, 考慮到電源的紋波影響;

3, adc采樣的第一個值,建議舍去,然后再做平均.



感謝回復(fù)!


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频