【问题标题】:beaglebone black flash onboard USR0 led c++, code runs but led doesn't changebeaglebone black flash onboard USR0 led c++,代码运行但led不改变
【发布时间】: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


【解决方案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

将其设置回心跳。

如果所有这些都有效,那么可能是您做错了什么。进行适当的错误检查,然后您将更容易调试它。

【讨论】:

  • 感谢您的回复 :)。输入您给出的第一个命令(cd beaglebone:green:usr0)后,它会给出错误“没有这样的文件或目录”。
  • 我在使用 putty 时遇到了同样的问题。
  • 好吧,没关系,如果我把“/sys/class/leds”放在命令前面就可以了。
  • 所以我不认为是代码本身,因为我知道其他人已经成功地将它用于 Debian。这不是 LED 的硬件问题或通讯问题,因为它们可以从命令行进行控制。这不是编辑器或腻子/MobaXterm 问题,因为它们给出了相同的结果。有可能我把我的文件放在了错误的地方,但是在说明中并没有说把它放在任何特定的地方,当使用 nano root 是默认的保存位置。它不能是编译器/工具链,因为它可以很好地编译和输出 cmets,而且我没有收到错误。我不知道还能尝试什么。
  • 我不知道为什么它不起作用但没关系。我将使用 Python 而不是 C++。似乎更常与 BBB 一起使用,我找到了一个更好的教程,我成功地通过了该教程。无论如何,谢谢你的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多