sys/class/gpio下的gpio操作(KE210)

1.看看系統中有沒有“/sys/class/gpio”這個文件夾。
如果沒有請在編譯內核的時候加入。

$ make menuconfig

 Device Drivers  —>  GPIO Support  —>     /sys/class/gpio/… (sysfs interface)。 

$ make

重新燒寫即可。

2.啓動開發板,在終端中敲入以下命令,獲取GPIO的信息。

# cd /sys/class/gpio
# for i in gpiochip* ; do echo `cat $i/label`: `cat $i/base` ; done

終端顯示如下(部分):

GPA0: 0
GPG1: 104
GPG2: 112
GPG3: 120
GPH0: 128
GPH1: 137
GPB: 14
GPH2: 146
GPH3: 155
GPI: 164

3.計算GPIO的引腳編號。
我們用GPH2_0來控制IO口。
GPH2的起始編號是146,那麼GPH2_0 就是146+0 = 146。

	# echo "146" > /sys/class/gpio/export
	# echo "out" > /sys/class/gpio/gpio146/direction
	# echo "1" > /sys/class/gpio/gpio146/value
	# echo "0" > /sys/class/gpio/gpio146/value

讀取value的數值:

# cat /sys/class/gpio/gpio146/value    
 

以此類推,GPH2_1就是146 + 1 = 147。

	# echo "147" > /sys/class/gpio/export
	# echo "out" > /sys/class/gpio/gpio147/direction
	# echo "1" > /sys/class/gpio/gpio147/value
	# echo "0" > /sys/class/gpio/gpio147/value

到這裏就可以聽到連接IO口的繼電器的開啓關閉的聲音了,也就完成了簡單的IO口操作。

 

參考:http://blog.163.com/shaohj_1999@126/blog/static/634068512013511104341878/

 

爲了加深理解,感謝該作者的分享,同時也把該作者的/sys/class/gpio 的使用說明的資料複製下來,再讓大家一起分享。

gpio_operation 通過/sys/文件接口操作IO端口 GPIO到文件系統的映射

* 控制GPIO的目錄位於/sys/class/gpio

* /sys/class/gpio/export   文件用於通知系統需要導出控制的GPIO引腳編號

* /sys/class/gpio/unexport   用於通知系統取消導出

* /sys/class/gpio/gpiochipX 目錄保存系統中GPIO寄存器的信息,包括每個寄存器控制引腳的起始編號base,寄存器名稱,引腳總數,導出一個引腳的操作步驟。

* 首先計算此引腳編號,引腳編號 = 控制引腳的寄存器基數 + 控制引腳寄存器位數

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

    echo 12 > /sys/class/gpio/export

* direction文件,定義輸入輸入方向,可以通過下面命令定義爲輸出

    echo "out " >direction

* direction接受的參數:in, out, high, low。high/low同時設置方向爲輸出,並將value設置爲相應的1/0。

* value文件是端口的數值,爲1或0.

    echo 1 > value

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章