Linux應用層直接操作GPIO
阿新 • • 發佈:2018-11-15
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
Linux應用層直接操作GPIO
在一個老手的指導下,應用層可以直接操作GPIO,具體指設定GPIO的輸入輸出以及輸出電平高或者低。這個大大地提高了靈活性,官方的文件有 GPIO Sysfs Interface for Userspace,GPIO Sysfs。
這裡我記錄一下使用過例子:
# RK30_PIN0_PD4# A0-7 -> 0-7 / B0-7 -> 8-15 / C0-7 -> 16-23 / D0-7 -> 24-31echo 28 > /sys/class/gpio/exportecho "out" > /sys/class/gpio/gpio28/directionecho 1 > /sys/class/gpio/gpio28/value
- 1
- 2
- 3
- 4
- 5
以上程式碼作用是:將RK30_PIN0_PD4
OTG的PIN腳為RK30_PIN3_PD5
。
能有老手指點真好,以前想像過有沒有辦法直接在使用者層控制GPIO的輸入/輸出並設定輸出電平,不過最終沒有了結果。
這個問題的背景是出在了對主機板上的USB HOST口供電控制,在移植最新的核心版本到該主機板上時,USB口沒有供電輸出,進行手動使能供電解決了問題所在。這個是手動控制,以後要新增到DTS檔案中。
另:
A20主機板簡化了一些操作,沒有按照標準的API進行設計。操作方式是這樣的:
# 設定GPIO輸入輸出模組(0:輸入 1:輸出)echo 1 /sys/class/gpio_sw/PH12 /mul_sel# 檢視PH12這個PIN腳電平cat /sys/class/gpio_sw/PH12/data# 設定PH12這個PIN腳電平echo "1" /sys/class/gpio_sw/PH12/data
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8