Microsoft.SPOT.Hardware.Battery (MF 3.0+ 為 static class) 提供靜態方法即時查詢:
public static void Main()
{
Debug.Print("*** Battery Info ***");
Debug.Print($"State of Charge: {Battery.StateOfCharge()}%");
Debug.Print($"Is Fully Charged: {(Battery.IsFullyCharged() ? "Yes" : "No")}");
Debug.Print($"Voltage: {Battery.ReadVoltage() / 1000.0:F3} Volt");
Debug.Print($"Temperature: {Battery.ReadTemperature() / 10.0:F1}°C");
Debug.Print($"On Charger: {(Battery.OnCharger() ? "Yes" : "No")}");
// 事件驅動監聽電源狀態變化
// Battery.WaitForEvent(TimeSpan.FromSeconds(30)); // 封鎖直到狀態改變或逾時
}
| 模擬器輸出 | Tahoe 開發板輸出 |
|---|---|
| Charge: 0% Fully Charged: Yes Voltage: 0.000 V Temp: 0.0°C Charger: No | Charge: 75% Fully Charged: Yes Voltage: 3.700 V Temp: 25.0°C Charger: Yes |
專案屬性 → Micro Framework → Transport 選 **USB** → Device 選 **Meridian_xxx** 即可部署到實體板。
public static void Main()
{
float sysClk = Cpu.SystemClock / 1_000_000f;
float slowClk = Cpu.SlowClock / 1_000_000f;
Debug.Print($"System Clock: {sysClk:F6} MHz");
Debug.Print($"Slow Clock: {slowClk:F6} MHz");
Debug.Print($"Glitch Filter: {Cpu.GlitchFilterTime.Milliseconds} ms");
}
| 模擬器 | Tahoe 板 |
|---|---|
| Sys: 27.000 MHz Slow: 0.000 MHz Glitch: 0 ms | Sys: 16.000 MHz Slow: 16.000 MHz Glitch: 20 ms |
關係:f(Cpu) > f(SystemClock) > f(SlowClock)。Slow Clock 通常為 System Clock 的 1/N (N=2,4,12,14,28,56,69,127...)。
位於 Microsoft.SPOT.Native.dll (非 Hardware.dll);提供三個唯讀屬性:
public static void Main()
{
Debug.Print($"Model: {SystemID.Model}");
Debug.Print($"OEM: {SystemID.OEM}");
Debug.Print($"SKU: {SystemID.SKU}");
}
| 模擬器 | Tahoe 板 |
|---|---|
| Model: 2 OEM: 1 SKU: 3 | Model: 0 OEM: 255 SKU: 65535 |
可用於**執行時判斷硬體平台**,載入對應驅動/參數,實現單一映像檔多平台部署。
Battery:即時電量、電壓、溫度、充電狀態 + 事件驅動監聽。Cpu:時脈頻率、毛刺過濾時間,輔助時序敏感驅動開發。SystemID:Model/OEM/SKU 三元組識別硬體版本。