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