關於 sys class gpio 簡介

2021-07-03 00:05:47 字數 808 閱讀 2980

如果是在已經適配好的linux核心上,那麼相信已經有了完成的gpiochip,可以在使用者空間/sys/class/gpio目錄下看到,如:

export

gpiochip0/

gpiochip32/

gpiochip64/

gpiochip96/

unexport

然後對照手冊看下需要用到哪個gpio,舉個例子:

如果使想用gpio1_20

那麼gpio number就是 1 x 32 + 20 = 54

使用分兩種情況:

1. 如果使最終向在使用者空間使用:

echo 54 > export

這樣在這個/sys/class/gpio目錄下就會產生gpio54資料夾

在資料夾下需要用到的有兩個檔案:

direction 用來配置輸入(in)還是輸出(out)

value 如果這個gpio配置成了輸入,那麼通過cat value可以檢視當前這個gpio是什麼電位;如果配置成了輸出,那麼可以通過echo 1/0 > value給這個gpio口指定輸出電平。

2. 在核心空間使用:

#include

gpio_request_one(54, gpiof_init_high, "gpio1_20")

這裡是配置成輸出,預設高電平,別名(label)為gpio1_20——就是給你的io口取個名字。

gpio_request_one(54, gpiof_in, "gpio1_20")

這個就是配置成輸入。

使用完後別忘了free

gpio_free(54);

sys class gpio 操作方法

在嵌入式裝置中對gpio的操作是最基本的操作。一般的做法是寫乙個單獨驅動程式,網上大多數的例子都是這樣的。其實linux下面有乙個通用的gpio操作介面,那就是我要介紹的 sys class gpio 方式。下面以友堅4412開發板上除錯為例子說明流程 首先,看看系統中有沒有 sys class g...

Linux下 sys class gpio驅動除錯

在核心初始化階段,將自動呼叫gpioilib sysfs init 在 sys class中建立gpio類,用於統一管理除錯gpio。export unexport屬性為gpio class成員,在註冊gpio類時,將會在 sys class gpio 目錄下建立export和unexport屬性檔...

關於apache HttpClient的簡單理解

1 httpentity用來封裝http body資料,不同型別的資料用不同型別的entity物件封裝,如stringentity用來封裝普通的json和xml資料,mulitpartentity用來封裝二進位製流資料,entity還有實體型別,實體長度等屬性。2 httprequest封裝應用層要...