2015-12-01 45 views
-1

我有安裝了Debian的BeagleBone Black。我成功的SSH方式登錄它MobaXterm並且寫了下面的代碼(在納米和gedit中採寫/編譯/運行此):beaglebone黑色閃存板載USR0 led C++,代碼運行但led不變

#include <iostream> 
#include <stdio.h> 
#include <unistd.h> 
using namespace std; 

int main(){ 
cout << "LED Flash Start" << endl; 
FILE *LEDHandle = NULL; 
const char *LEDBrightness="/sys/class/leds/beaglebone:green:usr0/brightness"; 

for(int i=0; i<10; i++){ 
    if((LEDHandle = fopen(LEDBrightness, "r+")) != NULL){ 
     fwrite("1", sizeof(char), 1, LEDHandle); 
     fclose(LEDHandle); 
    } 
    usleep(1000000); 

    if((LEDHandle = fopen(LEDBrightness, "r+")) != NULL){ 
     fwrite("0", sizeof(char), 1, LEDHandle); 
     fclose(LEDHandle); 
    } 
    usleep(1000000); 
    } 
    cout << "LED Flash End" << endl; 
} 

基本上我也跟着此處顯示的步驟:http://elinux.org/Beagleboard:C/C%2B%2B_Programming

的代碼編譯並運行。在終端中,它顯示預期的輸出,但是在BeagleBone黑色上,USR0指示燈永遠不會改變其通常的心跳模式。有誰知道這可能是爲什麼?

在此先感謝。

+0

沒有任何錯誤檢查,你得到你應得的,恐怕。 –

+0

如果你認爲我還沒有嘗試過,那麼爲什麼你不建議它,否則保持對你自己的意思評論。我不知道你的錯誤檢查是什麼意思? – Indi008

+0

函數調用可能會失敗。閱讀文檔以瞭解它們如何表示失敗。檢查這些信號,並至少提醒用戶。 –

回答

1

首先檢查它的命令行

# cd beaglebone:green:usr0 
# more trigger 
    none ...... mmc0 mmc1 timer oneshot [heartbeat] backlight gpio cpu0 default-on transient 
# echo none > trigger 

所有的作品,你會看到LED指示燈停止閃爍。現在試試這個

# echo 1 > brightness 

第一個LED應該去

# echo 0 > brightness 

第一個LED應熄滅。

# echo heartbeat > trigger 

將其設置迴心跳。

如果所有這些工作,那麼可能是你做錯了什麼。做一個適當的錯誤檢查,然後你會更容易調試它。

+0

感謝您的回覆:)。 輸入你給出的第一個命令後(cd beaglebone:green:usr0),它會給出錯誤「No such file or directory」。 – Indi008

+0

我使用膩子得到同樣的問題。 – Indi008

+0

沒關係,如果我在命令前加上「/ sys/class/leds」,它就可以工作。 – Indi008