列出、讀取、寫入及設定 GPIO。
使用方法
gpioutil <command> [<name>] [<value>]
指令
list
gpioutil list
列出已知的 GPIO。
list
會傳回的值如下:
[gpio-0] GPIO_HW_ID_3
括號內的值 (gpio-0
) 是固定索引參照。
括號後面的值 (GPIO_HW_ID_3
) 是要提供給其他 gpioutil
指令的 <name>
值。詳情請參閱「GPIO 名稱」一節。
別名:l
read
gpioutil read <name>
讀取已設為 OUT 的 GPIO 目前值。
<name>
必須是 list
傳回的其中一個值。
可能的回傳值為 0
(LOW) 或 1
(HIGH)。
別名:r
write
gpioutil write <name> <value>
將值寫入已設為 IN 的 GPIO。
<name>
必須是 list
傳回的其中一個值。
<value>
應為 0
(LOW) 或 1
(HIGH)。
這項指令不會傳回值。
別名:w
in
gpioutil in <name> <value>
將 GPIO 設為 IN。
<name>
必須是 list
傳回的其中一個值。
<value>
是電阻器提升/下拉動作,接受的值為 0
(GPIO_PULL_DOWN)、1
(GPIO_PULL_UP) 或 2
(GPIO_NO_PULL)。
這項指令不會傳回值。
別名:i
out
gpioutil out <name> <value>
將 GPIO 設為 OUT。
<name>
必須是 list
傳回的其中一個值。
<value>
是初始的 OUT 值,可接受的值為 0
(LOW) 或 1
(HIGH)。
這項指令不會傳回值。
別名:o
drive
gpioutil drive <name> [<value>]
取得或設定 GPIO 的驅動強度 (以微安培為單位)。
<name>
必須是 list
傳回的其中一個值。
如果省略 <value>
,drive
會傳回 GPIO 目前的驅動強度 (以微安培為單位)。
如果提供 <value>
,drive
會更新 GPIO 的驅動強度。<value>
的單位必須是微安培。
別名:d
help
gpioutil help
列印說明文字。
別名:h
範例
列出所有已知的 GPIO
$ gpioutil list
[gpio-0] GPIO_HW_ID_3
[gpio-1] GPIO_SOC_TH_BOOT_MODE_L
...
讀取 GPIO 目前的值
$ gpioutil read GPIO_HW_ID_3
GPIO Value: 1
將 LOW 值寫入 GPIO
$ gpioutil write GPIO_HW_ID_3 0
使用下拉電阻器將 GPIO 設為 IN
$ gpioutil in GPIO_HW_ID_3 0
將 GPIO 設為 OUT,初始值為 HIGH
$ gpioutil out GPIO_HW_ID_3 1
取得 GPIO 目前的驅動強度 (以微安培為單位)
$ gpioutil drive GPIO_HW_ID_3
Drive Strength: 500 ua
將 GPIO 的驅動強度設為 500 微安培
$ gpioutil drive GPIO_HW_ID_3 500
Set drive strength to 500
附註
使用這項指令時的注意事項
這項指令僅適用於某些診斷和測試 Fuchsia 版本。
此為裝置端指令,而非 fx
或 ffx
等主機端指令。換句話說,您必須先存取 Fuchsia 裝置的殼層,才能呼叫這項指令。
如何以互動方式存取 Fuchsia 裝置的殼層:
ffx component explore <component>
將 <component>
替換為可存取本頁所述指令的元件名稱。
如何呼叫單一指令,並將輸出內容傳回主機:
ffx component explore <component> -c "<command>"
將 <command>
替換為本頁列出的其中一項指令。
GPIO 名稱
GPIO 名稱是在驅動程式原始碼中定義,且通常會與 GPIO 的規格書名稱相符。如需範例,請參閱 vim3-gpio.cc
中的 DECL_GPIO_PIN
陳述式。
原始碼
gpioutil
的原始碼://src/devices/gpio/bin/gpioutil/