觀察荔枝派,可以看到它引出了兩排GPIO口,通常情況下,我們需要操作寄存器來控制GPIO,但是荔枝派官方(或者是全志官方?)提供的系統中已經帶有了GPIO的操作文件,我們可以直接使用。
直接控制:
首先我們將官方提供的Naon_pub_V4鏡像下載到TF卡中,這里我選擇了480*272的dd版本。
這里的flash提供給SPI FLASH(大小正好是16mbyte,spi flash表示被榨干),tf版本則提供給TF卡,后面的數字參數對應屏幕的分辨率。
將TF卡插入荔枝派,UART0連接電腦,並進入到 sys/class文件目錄下。
可以看到,官方提供的一些硬件驅動文件。這里我們進入gpio。
其中export為掛載GPIO的文件,向export中傳入1值:
echo 1 > export
文件目錄下就出現了gpio1的操作文件,對應的是操作PA1口
使用cat命令查看direction的值,發現是in。
將direction改為out,並向value中輸入相應數值,即可操作PA1口的電平。
通過一個32做的小測壓器測試了一下(略有誤差),輸出高/低電平成功。
SHELL腳本
既然有了可操控的文件,那么編寫一個SHELL腳本來控制也非常簡單和便利。
由於使用的root用戶,我直接在root中創立了一個shell腳本(當然也可以在其他目錄下創立)。
這里使用的是vi工具,官方系統中自帶這個工具。(圖中可以省略touch步驟)
進入vi編輯界面,輸入I來編輯。
下面是要寫入的文本。
這里使用了三個參數,我們使用shell時需要輸入這三個參數,分別是要掛載的gpio口,IO方向,輸出值。(示例中只考慮了輸出,輸入需要讀取值)
然后esc,通過:wq命令保存文件。
增加可執行權限:
chmod +x gpio1.sh
運行:
./gpio1.sh 1 out 1
PA1口輸出高電平,測試成功。