class ADCAll -- 存取所有 ADC 通道¶
ADCAll 透過單一物件公開 MCU 上的每一個 ADC 通道,包括外部類比輸入接腳以及晶片溫度、1.21 V 參考電壓與 VBAT 的內部通道。它適用於監控 MCU 的供電軌與晶片上感測器,而無需為每支接腳各自建立一個 ADC。
範例::
import pyb
# 12-bit resolution, internal channels only (temp + VBAT + VREF).
adcall = pyb.ADCAll(12, 0x70000)
temp = adcall.read_core_temp()
vbat = adcall.read_core_vbat()
vref = adcall.read_core_vref()
vdda = adcall.read_vref()
建構函式¶
- class pyb.ADCAll(resolution: int, mask: int = 0xffffffff)¶
提供對 MCU 上每一個 ADC 通道的同步存取,包括晶片溫度、內部 1.21 V 參考電壓與
VBAT的內部通道。建構此物件會將所有遮罩選取的外部 ADC 接腳切換為類比輸入模式。resolution為以位元為單位的 ADC 轉換解析度(通常為8、10或12)。mask是一個 32 位元的位元遮罩,用以選取要啟用哪些通道;位元N會啟用通道N。預設為0xffffffff(所有通道)。內部通道位於位元16(溫度)、17(VBAT)與18(VREF),因此若只要啟用內部通道,請傳入0x70000。
晶片上的溫度感測器經過原廠校準,準確度約為 ±1 °C,但它量測的是晶片溫度——當 MCU 運作時,此溫度通常會比環境溫度高出數十度。讀數只有在剛喚醒的開發板上,作為環境溫度的近似值時才有意義。
警告
類比輸入電壓絕對不可超過實際的供電電壓。
方法¶
- read_channel(channel: int) int¶
讀取指定的 ADC 通道。外部通道(
0--15)會以設定的解析度回傳未經換算的原始值;內部通道(16--18)同樣回傳原始值,但下方的專用輔助函式可將它們換算為電壓。