• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术讨论 > 之编译测试和LED点灯实验

之编译测试和LED点灯实验

录入:edatop.com     点击:

   DragonBoard 410c板载了6个LED灯,其中两个分别为Wifi和蓝牙指示灯,另外四个位用户指示灯,这里首先通过一个helloworld测试下Ian编译环境,然后参考官方手册实现用户LED4的闪烁控制,具体如下:
  首先编写helloworld程序简单测试

  1. vi helloDragonboard.c

复制代码



  完成后通过gcc编译并输出,然后执行

  1. gcc helloDragonboard.c -o helloDragonboard

复制代码



  基本上没什么问题,当然你也可以通过gcc -V查看gcc版本
  接着便是led实验了,同样通过Vi进行编辑,然后用gcc进行编译输出并执行,这里参考官方手册给出测试源码。


  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <fcntl.h>
  4. #include <unistd.h>
  5. #define LED4 "/sys/class/leds/apq8016-sbc:green:user4/brightness"
  6. int main( void )
  7. {
  8.    int led4_fd = open( LED4, O_WRONLY);
  9.    if(led4_fd < 0)
  10.    {
  11.        printf("Could not open File: %s", LED4);
  12.        return 0;
  13.    }
  14.    int i;
  15.    for( i=0; i<10;i++)
  16.    {
  17.       write( led4_fd, "1", 2 ); //Turning the LED ON by writing 1 into the brightness file
  18.       sleep( 1 );
  19.       write( led4_fd, "0", 2 ); //Turning the LED OFF by writing 0 into the brightness file
  20.       sleep( 1 );
  21.    }
  22.     close(led4_fd);
  23. }

复制代码

  值得注意的是,官方demo编译会直接出错

  1. #define LED4 "/sys/class/leds/apq8016-sbc\:green\:user4/brightness"

复制代码

  这里反斜杠务必要去掉。这里主要是定义LED在文件系统中的访问路径,获得LED的文件标识符,打开LED的亮度文件,其中user3代表的板卡上的用户指示灯4,更改序号可以控制不同的用户LED灯。

  1. int led4_fd = open( LED4, O_WRONLY);

复制代码


  这里如果led4_fd的文件标识符小于零,说明我们无法打开文件

  1.    if(led4_fd < 0)

复制代码

  最后我将for循环十次改为循环100次对led4进行开关,方便观看效果

  1. close(led4_fd);

复制代码


close表示退出文件控制,实验效果如下所示:


fgdfgdfgdfgdfg

值得注意的是 ,执行文件的时候必须用sudo 不然就打不开文件:Could not open File:云云。搞了2个小时才发现。

上一篇:怎样将蓝牙收发器的有效传输最大距离限制在2米以内
下一篇:无线充电汽车应用讨论

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图