您好,登錄后才能下訂單哦!
這篇文章主要講解了“linux中的/sys/class/gpio操作方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“linux中的/sys/class/gpio操作方法是什么”吧!
下面以ZC702開發上調試為例子說明流程:
首先,看看系統中有沒有“/sys/class/gpio”這個文件夾。
如果沒有請在編譯內核的時候加入 Device Drivers —> GPIO Support —> /sys/class/gpio/… (sysfs interface)。注:本人的內核默認是選中的,不需要重新選擇
/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
下面在ZC702開發板下進行一下測試
1.取得GPIO信息,在終端中敲入以下命令:
1.1、$ cd /sys/class/gpio;
1.2、$ for i in gpiochip* ; do echo `cat $i/label`: `cat $i/base` ; done
本人用的命令是:echo `cat gpiochip906/label`: `cat gpiochip906/base`
終端中顯示如下:
zynq_gpio: 906
2.計算GPIO號碼
我們把GPE10用來控制LED。
GPIO的頭是906,10 就是906+10 = 916.
$ echo 916 > /sys/class/gpio/export
ls 一下看看有沒有 gpio916 這個目錄
3.GPIO控制測試。
控制LED所以是輸出。
所以我們應該執行:
$ echo out > /sys/class/gpio/gpio916/direction
之后就可以進行輸出設置了。
$ echo 1 > /sys/class/gpio/gpio916/value
$ echo 0 > /sys/class/gpio/gpio916/value
感謝各位的閱讀,以上就是“linux中的/sys/class/gpio操作方法是什么”的內容了,經過本文的學習后,相信大家對linux中的/sys/class/gpio操作方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。