嵌入式linux下操作GPIO

2021-06-23 08:01:09 字數 1862 閱讀 5392

本文**:

在嵌入式裝置中對gpio的操作是最基本的操作。一般的做法是寫乙個單獨驅動程式,網上大多數的例子都是這樣的。其實linux下面有乙個通用的gpio操作介面,那就是我要介紹的 「/sys/class/gpio」 方式。首先,看看系統中有沒有「/sys/class/gpio」這個資料夾。如果沒有請在編譯核心的時候加入 device drivers-> gpio support-> /sys/class/gpio/… (sysfs inte***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號引腳,echo 12 > /sys/class/gpio/export,命令成功後生成/sys/class/gpio/gpio12目錄,如果沒有出現相應的目錄,說明此引腳不可匯出:

8、direction檔案,定義輸入輸入方向,可以通過下面命令定義為輸出,direction接受的引數:in, out, high, low。high/low同時設定方向為輸出

9、value檔案是埠的數值,為1或0.

下面在2440下進行一下測試:

1.取得gpio資訊,在終端中敲入以下命令:

$ cd /sys/class/gpio

$ for i in gpiochip* ; do echo `cat $i/label`: `cat $i/base` ; done

終端中顯示如下:

gpioa: 0

gpioe: 128

gpiof: 160

gpiog: 192

gpioh: 224

gpiob: 32

gpioc: 64

gpiod: 96

2.計算gpio號碼

例如我們把gpe11用來控制led。gpe0的頭是128,gpe11 就是128+11 = 139.於是我們將139寫入export中:

$ echo 139 > /sys/class/gpio/export
ls 一下看看有沒有 gpio139這個目錄,

3.gpio控制測試:

$ echo out > /sys/class/gpio/gpio139/direction

$ echo 1 > /sys/class/gpio/gpio139/value

$ echo 0 > /sys/class/gpio/gpio139/value

這時led燈就會滅或亮

2,嵌入式Linux之GPIO

2,嵌入式linux之gpio 1,點燈 1 看懂你所用的開發板的原理圖 產看led和gpio管腳是怎麼接線的如圖 2 通過s3c2440晶元控制暫存器配置gpf4 gpf5 gpf6為輸入引腳 來點亮 上圖的led燈 檢視s3c2440晶元手冊 3 配置gpio 使得gpf4 gpf5 gpf6 ...

Linux下操作硬體GPIO

4 關閉配置檔案 說明 使用者層操作gpio,用於簡單除錯 1 找到相關配置檔案 sys class gpio 若沒有此檔案則需要重新編譯核心並在編譯核心檔案時配置 device drivers gpio support sys class gpio sysfs inte ce example ec...

嵌入式GPIO介面及操作(一)

gpio意思就是通用輸入輸出,一些引腳可以通過他們輸出高低電平,或者通過它們讀入引腳的狀態。對gpio的操作是對所有硬體的操作最基本的技能。一 通過暫存器來操作gpio引腳,乙個引腳可以用於輸入 輸出或者其他的特殊功能,那麼一定有暫存器來配置這些功能,對於輸入,就是讀取引腳的狀態,一定可以從暫存器在...