【发布时间】:2015-12-01 03:59:55
【问题描述】:
我有一个安装了 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 从未改变其通常的心跳模式。有谁知道为什么会这样?
提前致谢。
【问题讨论】:
-
没有任何错误检查,恐怕你得到了你应得的。
-
如果您认为有些东西我没有尝试过,那么您为什么不建议它,否则请把卑鄙的 cmets 留给自己。不知道你说的错误检查是什么意思?
-
函数调用可能而且确实会失败。阅读文档以了解它们如何发出故障信号。检查这些信号并至少提醒用户。
标签: c++ debian beagleboneblack