用的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); }
測量代碼:
熱門產(chǎn)品 :
CH32L103: 32位PDUSB低功耗單片機