鉅大LARGE | 點(diǎn)擊量:4165次 | 2020年04月29日
STM32測(cè)量外部電池電壓值時(shí)參考電壓解決方法
STM32的ADC模塊是一個(gè)12位的逐次逼近型模擬數(shù)字轉(zhuǎn)換器。他有18個(gè)通道,可測(cè)量16個(gè)外部和2個(gè)內(nèi)部信號(hào)源。各通道的A/D轉(zhuǎn)換可以單次、持續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對(duì)齊或右對(duì)齊方式儲(chǔ)存在16位數(shù)據(jù)寄存器中。
其中,ADC的供電要求是2.4V到3.6V,ADC輸入范圍:VREF-
STM32的ADC可以直接測(cè)量2個(gè)內(nèi)部信號(hào)源,其中一個(gè)是溫度傳感器,一個(gè)是內(nèi)部參考電壓。
其中,溫度傳感器和通道ADCx_IN16相連接。內(nèi)部參考電壓VREFINT和ADCx_IN17相連接。
根據(jù)數(shù)據(jù)手冊(cè)中的數(shù)據(jù),這個(gè)參考電壓值的典型值為1.20V,最小值為1.16V,最大值為1.24V。這個(gè)電壓基本不隨外部供電電壓的變化而變化。
其使用的具體為:在測(cè)量某個(gè)通道的電壓值之前,先讀出ADCx_IN17引腳參考電壓的ADC的測(cè)量數(shù)值,記為AD_REFINT,再讀出要測(cè)量通道的ADC的轉(zhuǎn)換數(shù)值,記為AD_CHX。則要測(cè)量的電壓數(shù)值為:
V_CHX=V_REFINT*(AD_CHX/AD_REFINT)
其中,V_REFINT為參考電壓:1.2V(典型值)。
在STM32供應(yīng)的庫函數(shù)中,假如要開啟內(nèi)部參考電壓功能,使用的庫函數(shù)和開啟溫度內(nèi)部溫度傳感器的函數(shù)是相同的,只是在后面采集ADCx_Channel_x通道的時(shí)候不同而已。開啟函數(shù)為:ADC_TempSensorVrefintCmd(ENABLE);
注:必須設(shè)置TSVREFE位激活內(nèi)部通道:ADCx_IN16(溫度傳感器)和ADCx_IN17(VREFINT)的轉(zhuǎn)換。
有關(guān)操作源碼,可以參考正點(diǎn)原子不完全手冊(cè)第二十一章內(nèi)部溫度傳感器實(shí)驗(yàn),關(guān)于內(nèi)部電壓值的測(cè)量和溫度傳感器的方法是相同的,只是使能的ADC通道不相同,其他都是相同的,所以,可以直接參考。