落風(fēng)的個(gè)人空間 http://selenalain.com/space-uid-138363.html [收藏] [復制] [RSS]

博客

迅為-iMX6開(kāi)發(fā)板-設備樹(shù)內核-sys方式控制GPIO

已有 573 次閱讀2020-11-11 12:01

本文檔主要講解,iMX6 開(kāi)發(fā)板,通過(guò) sys 文件的方式來(lái)控制 GPIO。
要通過(guò) sys 控制 GPIO,需要做以下幾步操作:
1 開(kāi)啟內核中的“GPIO_SYSFS”驅動(dòng)配置;
2 確保 IO 被配置為 GPIO,并且沒(méi)有驅動(dòng)調用;
3 計算 GPIO 編號,通過(guò)命令或者腳本操作 GPIO。
1 GPIO_SYSFS 配置
如下圖所示,可以看到內核中 GPIO_SYSFS 是默認配置的,這個(gè)驅動(dòng)所有原廠(chǎng) BSP 基本都會(huì )包含,一般情況下是默認配置的。

2 確保 IO 被配置為 GPIO,并且沒(méi)有驅動(dòng)調用
這里以 LED 的 GPIO 為例, 將 LED 的驅動(dòng)去掉,確保沒(méi)有驅動(dòng)調用。
Device Drivers --->
Character devices --->
Enable LEDS config ---去掉,并重新編譯內核燒寫(xiě)到開(kāi)發(fā)板中。
如下圖所示配置 menuconfig。

燒寫(xiě)到開(kāi)發(fā)板中,確保沒(méi)有 led 的設備節點(diǎn),默認的內核中是有 led 設備節點(diǎn)的,如下圖所示。

GPIO 的配置這里就不再重復介紹,在“iTOP-iMX6-設備樹(shù)內核-IO 配置分析文檔_V1.0”中有介紹。
3 計算 GPIO 編號并測試
LED 的網(wǎng)絡(luò )標號為:KEY_ROW6
LED 對應 GPIO 的 PIN 腳名稱(chēng)為:GPIO_2
GPIO_2 對應的宏定義為:#define MX6QDL_PAD_GPIO_2__GPIO1_IO02
那么 GPIO_2 對應的 GPIO 的 bank[n]為 GPIO1_IO02,也就是 bank 1 的 02 號 GPIO。
GPIO 的編號計算方法為:nr=(P -1)* 32 + N;
nr 為編號,P 為 bank 號,N 為具體 bank 中的編號。
那么 P=1,N=2,通過(guò)計算得出 nr=2。
測試命令為:
echo nr > /sys/class/gpio/export
echo out > /sys/class/gpio/gpionr/direction
echo 1 > /sys/class/gpio/gpionr/value ---> 寫(xiě)高電平,小燈亮
echo 0 > /sys/class/gpio/gpionr/value ---> 寫(xiě)低電平,小燈滅
以上 nr 替換成 GPIO 的編號,則命令為:
echo 2 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio2/direction
echo 1 > /sys/class/gpio/gpio2/value --->寫(xiě)高電平,小燈亮
echo 0 > /sys/class/gpio/gpio2/value ---> 寫(xiě)低電平,小燈滅
如下圖所示,執行三條命令之后小燈亮。

接著(zhù)執行 echo 0 > /sys/class/gpio/gpio2/value 小燈滅。
至此,sys 測試 gpio 完成。
另外需要注意的是,本文檔沒(méi)有介紹 LED 對應的管腳是如何配置的,因為 LED 驅動(dòng)能夠運行,那么肯定在設備樹(shù)文件中配置了。
如果想要掌握如何配置管腳,可以參考“iTOP-iMX6-設備樹(shù)內核-IO 配置分析文檔_V1.X”和“iTOP-iMX6-設備樹(shù)內核-IO 擴展例程_V1.X”文檔。

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页