1. 程式人生 > 其它 >迅為imx6ull開發板使用c語言呼叫shell命令控制led燈

迅為imx6ull開發板使用c語言呼叫shell命令控制led燈

用命令來控制 led 燈沒有感覺,那可以使用程式來控制,讓程式幫我們輸入這些命令,我們可以使用system 函式來完成。
標頭檔案:#include
格式:system(要執行的命令)
程式碼實現:
#include
void main(void)
{
system(“echo none > /sys/class/leds/sys-led/trigger”);//設定觸發方式
while(1)
{
system(“echo 1 > /sys/class/leds/sys-led/brightness”);//點亮 led2
sleep(5);
system(“echo 0 > /sys/class/leds/sys-led/brightness”);//關閉 led2
sleep(5);
}
}
我們來寫一下這個程式,我們進到 samba 指定的這個路徑下,我們在這個路徑下建立 c 程式,名為 led.c,然後用 source insight 開啟這個檔案,因為這個程式非常簡單,我直接複製程式,我們在進入 while 迴圈之前先設定了下 led 觸發方式,把它設定成沒有觸發,這個就有點類似於 32

微控制器上對管腳的初始化,也就是我們先初始化一下管腳,我們再進行管腳的操作,然後我們進入到 while 迴圈,我們不斷的給 led2 進行置 0 置 1 ,我們把這個延遲改小一點,改成 1 秒,然後儲存,如下圖所示。

開啟 ubuntu,進到 samba 指定的這個路徑下,我們就可以在 samba 這個路徑看到 .c 檔案了,如下圖所示。

然後我們把 .c 檔案從 samba 指定的目錄把它考到 ubuntu 的目錄下,然後我們進到這個目錄,如下圖所示。

我們直接使用交叉編譯器編譯下 led.c ,因為是在開發板上執行的,所以就不能使用 gcc 了。我們使用靜態編譯,這樣就得到了 led 這個可執行的程式。如下圖所示。

把這個可執行檔案拷貝到開發板,我們可以使用 U 盤或者 TF 卡也可以使用 NFS ,這個依據自己的習慣來就可以了,我這裡使用 nfs 。進到開發板的控制終端,然後給開發板連下網,我先配置下無線密碼,然後聯網,因為我這裡要使用 nfs, 然後我們來掛載下這個目錄,然後我們把 led 這個可執行檔案拷貝到 nfs共享的目錄,這樣就可以在開發板上看到 led 這個可執行檔案了,我這裡給他拷貝到開發板上,進到 opt 這個目錄下,如下圖所示。

s 看一下,如下圖所示。

我們來執行下這個可執行檔案,如下圖所示。

可以看到開發板現在 led2 這個燈的狀態,來執行下這個可執行檔案,這個燈就是一閃一閃的了,如下圖所示。

使用 ctrl+c 打斷這個程式的執行,這個燈現在已經不亮了,如下圖所示。

然後我們在執行下,這樣我們就使用程式成功控制了一個燈並實現了一個閃燈的程式,其實這個程式裡面的方法和我們直接使用命令的方法是一樣的,只不過我們是使用 c 語言來呼叫我們的 shell 命令來實現,就不用再人為的輸入了。
在 led 裝置的這個目錄下,還有一個叫 beep 的蜂鳴器裝置,蜂鳴器我們也可以使用這個方法來開啟和關閉蜂鳴器,這就作為一個作業大家自己來試下,方法和點亮一個 led 燈方法是一樣的,我們可以先用命令來試下,然後再用 system 呼叫 shell 命令用程式實現。