在即時可用的應用程式中使用 GPI
重要
這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。
Azure Sphere 支援 GPIO(一般用途的輸入/輸出)。 GPIO 是積體電路上的可程式化數字針腳類型。 GPI 沒有預先定義的功能,而且應用程式可以自定義其行為。 GPI 的一些常見用途是變更硬體裝置的狀態、控制 LED,以及讀取交換器的狀態。
本主題描述如何在即時可用的應用程式中使用 GPIO(RTApp)。 如需在高階應用程式中使用 PIO 的相關信息,請參閱 在高階應用程式中使用 GPI。
RTApp 可以在 Azure Sphere 裝置上使用任何 GPI。 GPIO 支援下列作業:
- 讀取輸入
- 將輸出設定為高或低
- 輪詢軟體中斷
注意
Azure Sphere OS 不會在啟動時重設周邊。 您的應用程式應該確保周邊在啟動時和重新啟動后處於已知良好的狀態。
即時核心上 GPI 的 MT3620 支援
在 MT3620 上,大部分的 GPIO 都會對應到四個區塊中的即時核心,從 GPIO 0 開始:不過,ISU 區塊 0 - 4 有五個 GPIO。 因此,如果高階應用程式(或其他 RTApp)要求相同區塊中的 GPIO,RTApp GPIO 要求可能會失敗。 例如,如果高階應用程式要求 GPIO 8 和 RTApp 要求 GPIO 9,則第二個應用程式會在部署時傳回錯誤。
MT3620 RDB 上的每個 LED 都會對應到三個 GPO:一個用於紅色、綠色和藍色通道。
如需註冊基位址、中斷號碼、時鐘速率、取樣頻率,以及 MT3620 的其他詳細數據,請參閱 MT3620 數據工作表 和 MT3620 M4 用戶手錶;如果問題仍然存在,您可以透過電子郵件 Azure.Sphere@avnet.com向 Avnet 要求詳細數據。
GPIO 需求
您的應用程式程式代碼需要一種方式來識別 GPIO 及其快取器。 您可以在製造商的硬體檔中找到註冊基位址。 在 RTApp 可以使用 GPIO 之前,它必須先初始化它要使用的區塊。 應用程式使用的每個區塊只需要初始化一次。
如需 MT3620 的詳細資訊,請參閱 即時核心上 GIO 的 MT3620 支援。
應用程式指令清單設定
若要使用 GPIO,RTApp 必須在應用程式指令清單的 [功能] 區段中列出它。 使用目標硬體 JSON 檔案中為其定義的 「AppManifestValue」 來識別 GPIO。 例如,下列這一行會保留 GPIOs 8 和 12:
"Capabilities": {
"Gpio": [ 8, 12 ]
}
GPIO 範例應用程式
GPIO 範例示範如何在 RTApp 中使用 GPIO。 自述檔提供詳細數據和指示。