關于CH582內(nèi)部ADC測量電壓不準的問題請教

各位老師好,我再使用CH582測量電池電壓,使用了兩個49.9K的電阻分壓后接入到ADCIN8,測試時候發(fā)現(xiàn)得到的數(shù)值大概在3979左右,也就是說測量到引腳的電壓大概是 3.1V左右,外部電池電壓根據(jù)分壓原理達到了6.3V左右,這當然是錯誤的。于是我直接將測量引腳對地短接,測量到電壓為0。直接對3.3V短接,測量到電壓為3.3V,數(shù)值大概在4089左右。說明ADC正常工作的再測量分壓,發(fā)現(xiàn)數(shù)值還是3979左右,也比較穩(wěn)定, 實測此時我的ADC8引腳電壓為2.14V左右,我的ADC初始化很簡單如下:

void?adc_init(void)
{
????/*?單通道采樣:選擇adc通道0做采樣,對應?PA4引腳,?帶數(shù)據(jù)校準功能?*/
???????GPIOA_ModeCfg(GPIO_Pin_1,?GPIO_ModeIN_Floating);
???????ADC_ExtSingleChSampInit(SampleFreq_3_2,?ADC_PGA_0);
???????RoughCalib_Value?=?ADC_DataCalib_Rough();?//?用于計算ADC內(nèi)部偏差,記錄到全局變量?RoughCalib_Value中
???????ADC_ChannelCfg(8);

}

因此我覺得是不是由于MCU的ADC其內(nèi)阻太大導致的,或者是其他原因我沒理解?

請問各位老師,我這個問題該怎么解決?需要減小分壓電阻嗎?還是其他原因?


再次修改程序,將ADC8的引腳修改為下拉,而不是浮空,數(shù)值又發(fā)生了改變,此時測量外部實際電壓1.1V左右,測量到的數(shù)值為2053,換算過來電壓值為1.65V左右。

void?adc_init(void)
{
????/*?單通道采樣:選擇adc通道0做采樣,對應?PA4引腳,?帶數(shù)據(jù)校準功能?*/
???????GPIOA_ModeCfg(GPIO_Pin_1,?GPIO_ModeIN_PD);
???????ADC_ExtSingleChSampInit(SampleFreq_3_2,?ADC_PGA_0);
???????RoughCalib_Value?=?ADC_DataCalib_Rough();?//?用于計算ADC內(nèi)部偏差,記錄到全局變量?RoughCalib_Value中
???????ADC_ChannelCfg(8);

}

再次更新:

大致搞明白了,原來還不跟通用的ADC一樣,測量范圍很窄,感覺還不是很準確

測量范圍可以根據(jù)相應的電壓做調(diào)整,一般根據(jù)實際可用測量電壓范圍調(diào)整,如果需要測量電壓范圍過大,在誤差可接受情況下,也可以根據(jù)理論可測電壓范圍做調(diào)整。

1.png


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

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