Cubieboard官方 GPIO驅動使用總結

最近參考了tll同窗的GPIO操做教程,終於完成了CB的GPIO控制操做。
板子使用的操做系統是官方標準系統1.1版本的linaro官方img的,自己已經帶gpio驅動文件。
1.官方驅動爲gpio-sunxi.ko,位於 /lib/modules/3.0.62/kernel/drivers/gpio/gpio-sunxi.ko。
2.由於系統啓動後並無加載該驅動模塊,須要用戶自行插入,使用insmod命令便可。以後lsmod能夠看到gpio-sunxi.
固然也能夠編輯/etc/modules,在其中加入gpio-sunxi.ko。重啓後lsmod檢查是否已經加載。
3.驅動加載完畢後就能夠操做GPIO口了。
對於GPIO口的操做,須要有如下三個步驟:
1).須要指明須要操做的端口號。
echo 4 > /sys/class/gpio/export 
ls /sys/class/gpio 
會出現咱們須要的端口文件夾 gpio4-pe4,
若是 echo 1 > /sys/class/gpio/export  彷佛出現 gpio1-pe1。
2)打開gpio4-pe4,或者 ls gpio4-pe4,能夠看到gpio4-pe4裏面的文件,有2個文件與咱們操做有關:
分別是 direction 和 value ,能夠看出分別表明端口的方向 和端口的值。
對於direction ,能夠寫入echo out > /sys/class/gpio/gpio4-pe4/direction 設置該端口爲輸出端。若是不設置,則寫入數據也沒有反應。
3)端口設置或清零.
經過向value文件寫入1或者0來完成端口的設置或清零。
echo 1 > /sys/class/gpio/gpio4-pe4/value ;set 1.
經過上述3個步驟就可完成對GPIO端口的選擇、設置、和使用。
可是在使用中發現問題及解決方法:
1 gpio-sunxi.ko驅動不會自動被系統加載,每次啓動後須要本身加載,比較麻煩。
解決方法:編輯 /etc/modules 添加gpio驅動模塊。以後每次重啓後,系統自動加載GPIO模塊。
2.每次系統重啓後都須要從新設置GPIO口,配置端口方向。
解決方法:編輯 /etc/rc.local,在exit前 加入
echo 1 > /sys/class/gpio/export 
echo out > /sys/class/gpio/gpio4-pe4/direction
完成對GPIP口的選擇和端口設置。
3.對於 /sys的操做 須要chmod一下權限。chmod -R 777 /sys .
這也須要編輯/etc/rc.local來實現。

另外,此次我利用CB實現的功能是與ttl智能門鎖相似,我是使用手機來控制照明燈。
基本的架構也是利用 LNMP來作服務器,利用php語言對  /sys/class/gpio/gpio4-pe4/value進行讀寫操做來完成的。
這裏須要注意的是 nginx服務器的網站目錄設置,以前設置在 /etc/nginx/www/不能完成對 /sys/..的操做。
後來從新修改了網站站點目錄,直接設置到 / 下,就可完成對 /sys 文件的操做了。

經過這幾天對GPIO的學習,感受linux者的很強大,哈哈!!!!php


原文做者:flyword
原文連接:http://forum.cubietech.com/forum.php?mod=viewthread&tid=725&highlight=gpiolinux

相關文章
相關標籤/搜索