本篇內(nèi)容介紹了“如何用sys方式控制GPIO”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)是一家專業(yè)提供隴西企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都做網(wǎng)站、H5建站、小程序制作等業(yè)務(wù)。10年已為隴西眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。
本文檔主要講解,iMX6 開發(fā)板,通過 sys 文件的方式來控制 GPIO。
要通過 sys 控制 GPIO,需要做以下幾步操作:
1 開啟內(nèi)核中的“GPIO_SYSFS”驅(qū)動配置;
2 確保 IO 被配置為 GPIO,并且沒有驅(qū)動調(diào)用;
3 計算 GPIO 編號,通過命令或者腳本操作 GPIO。
1 GPIO_SYSFS 配置
如下圖所示,可以看到內(nèi)核中 GPIO_SYSFS 是默認配置的,這個驅(qū)動所有原廠 BSP 基本都會包含,一般情況下是默認配置的。
2 確保 IO 被配置為 GPIO,并且沒有驅(qū)動調(diào)用
這里以 LED 的 GPIO 為例, 將 LED 的驅(qū)動去掉,確保沒有驅(qū)動調(diào)用。
Device Drivers --->
Character devices --->
Enable LEDS config ---去掉,并重新編譯內(nèi)核燒寫到開發(fā)板中。
如下圖所示配置 menuconfig。
燒寫到開發(fā)板中,確保沒有 led 的設(shè)備節(jié)點,默認的內(nèi)核中是有 led 設(shè)備節(jié)點的,如下圖所示。
GPIO 的配置這里就不再重復(fù)介紹,在“iTOP-iMX6-設(shè)備樹內(nèi)核-IO 配置分析文檔_V1.0”中有介紹。
3 計算 GPIO 編號并測試
LED 的網(wǎng)絡(luò)標號為:KEY_ROW6
LED 對應(yīng) GPIO 的 PIN 腳名稱為:GPIO_2
GPIO_2 對應(yīng)的宏定義為:#define MX6QDL_PAD_GPIO_2__GPIO1_IO02
那么 GPIO_2 對應(yīng)的 GPIO 的 bank[n]為 GPIO1_IO02,也就是 bank 1 的 02 號 GPIO。
GPIO 的編號計算方法為:nr=(P -1)* 32 + N;
nr 為編號,P 為 bank 號,N 為具體 bank 中的編號。
那么 P=1,N=2,通過計算得出 nr=2。
測試命令為:
echo nr > /sys/class/gpio/export
echo out > /sys/class/gpio/gpionr/direction
echo 1 > /sys/class/gpio/gpionr/value ---> 寫高電平,小燈亮
echo 0 > /sys/class/gpio/gpionr/value ---> 寫低電平,小燈滅
以上 nr 替換成 GPIO 的編號,則命令為:
echo 2 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio2/direction
echo 1 > /sys/class/gpio/gpio2/value --->寫高電平,小燈亮
echo 0 > /sys/class/gpio/gpio2/value ---> 寫低電平,小燈滅
如下圖所示,執(zhí)行三條命令之后小燈亮。
接著執(zhí)行 echo 0 > /sys/class/gpio/gpio2/value 小燈滅。
“如何用sys方式控制GPIO”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
當前名稱:如何用sys方式控制GPIO
網(wǎng)頁路徑:http://jinyejixie.com/article26/pgeicg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、動態(tài)網(wǎng)站、手機網(wǎng)站建設(shè)、用戶體驗、響應(yīng)式網(wǎng)站、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)