我安装了Debian的BeagleBone Black。我成功地使用MobaXterm进行了ssh,并编写了以下代码(已经在nano和gedit中编写/编译/运行):
#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 Black上,USR0 led从未改变其通常的心跳模式。有谁知道为什么会这样?
提前致谢。
答案 0 :(得分:1)
首先检查它是否全部来自命令行
# cd beaglebone:green:usr0
# more trigger
none ...... mmc0 mmc1 timer oneshot [heartbeat] backlight gpio cpu0 default-on transient
# echo none > trigger
你会看到指示灯停止闪烁。现在试试这个
# echo 1 > brightness
第一个LED应该亮起
# echo 0 > brightness
第一个LED应该熄灭。
# echo heartbeat > trigger
将其设置回心跳。
如果所有这些都有效,那么可能是你做错了什么。进行适当的错误检查,然后调试它会更容易。