本章節(jié)介紹的是在 linux 系統(tǒng)環(huán)境下 linux-C 調(diào)用 shell 命令控制GPIO輸入輸出步驟。shell 作為Linux 操作系統(tǒng)的外殼,為用戶(hù)提供使用操作系統(tǒng)的接口。它是命令語(yǔ)言、命令解釋程序及程序設(shè)計(jì)語(yǔ)言的統(tǒng)稱(chēng),它解釋由用戶(hù)輸入的命令并且把它們送到內(nèi)核。
使用shell命令直接操作/sys/下的gpio節(jié)點(diǎn),首先在imx6ull-14x14-evk.dts注釋掉設(shè)備樹(shù)的 LED和按鍵功能,LED引腳為GPIO0_3,key引腳為GPIO1_18。
在程序中通過(guò)shell命令讀取按鍵值和控制LED燈。
1.通過(guò)popen執(zhí)行shell命令
popen和pclose函數(shù)實(shí)現(xiàn)的功能是創(chuàng)建一個(gè)管道,用來(lái)連接到另一個(gè)進(jìn)程,然后讀那個(gè)進(jìn)程的輸出或向它發(fā)送輸入,具體操作是fork一個(gè)子進(jìn)程,exec一個(gè)shell執(zhí)行命令。
2.填寫(xiě)shell命令,設(shè)置引腳狀態(tài)
3.控制Led
交叉編譯arm-linux-gnueabihf-gcc -o led shellGpio.c ,將led文件拷貝到開(kāi)發(fā)板。
測(cè)試可看到開(kāi)發(fā)板的燈在閃爍,終端有打印信息:
4.讀取按鍵值
編譯后測(cè)試:
好物推薦-迅為品質(zhì)IMX6ULL開(kāi)發(fā)板