日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Shell脚本学习笔记3——控制GPIO

發布時間:2023/12/13 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 Shell脚本学习笔记3——控制GPIO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在我參與維護的一個項目中,硬件上有一處設計失誤:本應該短接到地的一個GPIO沒有短接到地,導致某一個功能不能實現,正式出貨的時候會進行改版。

但目前還處于測試階段,只需要先把這個功能實現出來,方案有兩個,一是硬件上飛線去實現,而是通過軟件去拉低這個GPIO。鑒于硬件飛線比較麻煩,所以我們選擇軟件上寫一個腳本來實現。

我們可以先通過命令行來控制某一個GPIO(我要控制的GPIO編號是476)驗證一下,如果沒有問題,我們再將這些命令寫到腳本里,再增加一些邏輯判斷就可以。

1、首先我們來看看/sys/class/gpio/這個目錄下有什么:

aplex@aplex:~$ ls /sys/class/gpio/
export  unexport  
/sys/class/gpio/這個目錄是控制gpio的,而/sys/class/gpio/export文件是用于通知系統需要導出控制的GPIO引腳編號,
/sys/class/gpio/unexport文件是用于通知系統取消導出控制的GPIO引腳編號

2、既然我們要控制某一個gpio,那么就需要告訴系統需要導出控制的gpio是哪個,并且需要超級用戶的權限才可以(經過驗證,sudo獲取臨時的權限并不能執行,需要用su才可以):

aplex@aplex:~$ su
Password:
root@aplex:/home/aplex# echo 476 > /sys/class/gpio/export

  一般情況下,執行了以上指令后,就可以在/sys/class/gpio/目錄下找到一個gpio476的文件夾,因為我現在是在虛擬機上操作,所以并沒有這個文件出現,但是有在真實環境下驗證過。

3、需要設置一下gpio的方向(輸入或者輸出),因為我要拉低這個引腳的電平所以必須設置為輸出:

root@aplex:/home/aplex# echo out > /sys/class/gpio/gpio476/direction

  

4、設置gpio的電平狀態,這里設置為低電平:

root@aplex:/home/aplex# echo 0 > /sys/class/gpio/gpio476/value

 

5、執行以上命令后,退出root用戶,切換到普通用戶:

root@aplex:/home/aplex# exit

  

經過以上操作后,用萬用表測量該引腳的電平,已經被拉低了。

那么接下來的工作就是寫腳本了。腳本的內容如下:

#!/bin/bash

ls /sys/class/gpio
 
if [ -d /sys/class/gpio/gpio476 ]
then
	echo out > /sys/class/gpio/gpio476/direction
	echo 0 > /sys/class/gpio/gpio476/value
else
	echo 476 > /sys/class/gpio/export
	echo out > /sys/class/gpio/gpio476/direction
	echo 0 > /sys/class/gpio/gpio476/value
fi

在執行這個腳本之前需要給這個腳本執行的權限,假設這個腳本的名稱保存為ioCtrlLow.sh:

aplex@aplex:~$ sudo chmod 777 ioCtrlLow.sh

  

接下來就是執行:

aplex@aplex:~$ sudo ./ioCtrlLow.sh

  

總結

以上是生活随笔為你收集整理的Shell脚本学习笔记3——控制GPIO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。