嵌入式系統下對GPIO的簡單操作

2021-07-09 08:23:28 字數 1622 閱讀 1038

在嵌入式

裝置中對gpio的操作是最基本的操作。一般的做法是寫乙個單獨驅動程式,網上大多數的例子都是這樣的。其實linux下面有乙個通用的gpio操作介面,那就是我要介紹的 「/sys/class/gpio」 方式。

首先,看看系統中有沒有「/sys/class/gpio」這個資料夾。如果沒有請在編譯核心的時候加入   device drivers  —>  gpiosupport  —>     /sys/class/gpio/… (sysfsinte***ce)。

/sys/class/gpio 的使用說明:

1、gpio_operation 通過/sys/檔案介面操作io埠 gpio到檔案系統的對映;

2、控制gpio的目錄位於/sys/class/gpio;

3、 /sys/class/gpio/export檔案用於通知系統需要匯出控制的gpio引腳編號;

4、/sys/class/gpio/unexport 用於通知系統取消匯出;

5、/sys/class/gpio/gpiochipx目錄儲存系統中gpio暫存器的資訊,包括每個暫存器控制引腳的起始編號base,暫存器名稱,引腳總數匯出乙個引腳的操作步驟;

6、首先計算此引腳編號,引腳編號 = 控制引腳的暫存器基數 + 控制引腳暫存器位數;

7、向/sys/class/gpio/export寫入此編號,比如12號引腳,在shell中可以通過以下命令實現,命令成功後生成/sys/class/gpio/gpio12目錄,如果沒有出現相應的目錄,說明此引腳不可匯出:echo 12 > /sys/class/gpio/export;

8、direction檔案,定義輸入輸入方向,可以通過下面命令定義為輸出;

9、echo out > direction, direction接受的引數:in,out, high, low。high/low同時設定方向為輸出,並將value設定為相應的1/0;

10、value檔案是埠的數值,為1或0.echo 1 > value

下面以freescale的imx6板子為例, 說下操作gpio22的流程:

1.       cd 到/sys/class/gpio, 該目錄下的內容如下:

2.       匯出gpio22到使用者空間,以便於操作:

3.       進入gpio22, 看到內容如下:

4.       設定gpio22為out型別的gpio

5.       此時可以設定gpio22為高或低了:

這樣就能控制gpio了, 用完後, 記得從使用者空間中刪除:

注意, 如果有些gpio, export後, 還是沒有顯示出來, 則很可能是被用掉了。

另外, 我們也可以從下面這個檔案來檢視被使用的gpio的當前狀態:

嵌入式系統下對GPIO的簡單操作

在嵌入式 裝置中對gpio的操作是最基本的操作。一般的做法是寫乙個單獨驅動程式,網上大多數的例子都是這樣的。其實linux下面有乙個通用的gpio操作介面,那就是我要介紹的 sys class gpio 方式。首先,看看系統中有沒有 sys class gpio 這個資料夾。如果沒有請在編譯核心的時...

嵌入式linux開發ubuntu下常用操作

以樹狀圖顯示指定路徑結構 tree x path 顯示後台暫停的程序 jobs fg number 將本地檔案拷貝至遠端 scp local file remote username remote ip remote folder 殺死指定程式 killall minicom 登陸ssh 主機需要安...

嵌入式系統簡單介紹(入門)

嵌入式系統簡單介紹 入門 嵌入式作業系統是一種執行在嵌入式相關產品中的作業系統,它的主要作用是負責任務的排程,記憶體的分配以及資料的儲存等。常見的嵌入式產品有手機,平板,自助取款機,收銀台結算機等等。嵌入式作業系統為使用者程式提供了豐富的介面,如裝置的驅動介面 通訊介面 圖形介面等,這就大大的方便了...