本文**:
在嵌入式裝置中對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引腳,乙個引腳可以用於輸入 輸出或者其他的特殊功能,那麼一定有暫存器來配置這些功能,對於輸入,就是讀取引腳的狀態,一定可以從暫存器在...