查看: 817|回复: 0

骁龙DragonBoard 410c编译测试和LED点灯实验

[复制链接]
  • TA的每日心情
    奋斗
    2022-10-13 10:27
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-9-29 08:51:51 | 显示全部楼层 |阅读模式
    分享到:
    DragonBoard 410c板载了6个LED灯,其中两个分别为Wifi和蓝牙指示灯,另外四个位用户指示灯,这里首先通过一个helloworld测试下Ian编译环境,然后参考官方手册实现用户LED4的闪烁控制,具体如下:
    首先编写helloworld程序简单测试


    • vi helloDragonboard.c

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


    • gcc helloDragonboard.c -o helloDragonboard


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


    #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <unistd.h>#define LED4 "/sys/class/leds/apq8016-sbc:green:user4/brightness" int main( void ) {    int led4_fd = open( LED4, O_WRONLY);    if(led4_fd < 0)    {        printf("Could not open File: %s", LED4);        return 0;    }    int i;    for( i=0; i<10;i++)    {       write( led4_fd, "1", 2 ); //Turning the LED ON by writing 1 into the brightness file       sleep( 1 );       write( led4_fd, "0", 2 ); //Turning the LED OFF by writing 0 into the brightness file       sleep( 1 );    }     close(led4_fd); }
    值得注意的是,官方demo编译会直接出错


    • #define LED4 "/sys/class/leds/apq8016-sbc\:green\:user4/brightness"
    这里反斜杠务必要去掉。这里主要是定义LED在文件系统中的访问路径,获得LED的文件标识符,打开LED的亮度文件,其中user3代表的板卡上的用户指示灯4,更改序号可以控制不同的用户LED灯。


    • int led4_fd = open( LED4, O_WRONLY);

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


    •    if(led4_fd < 0)
    最后我将for循环十次改为循环100次对led4进行开关,方便观看效果


    • close(led4_fd);
    close表示退出文件控制,实验效果如下所示:
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    手机版|小黑屋|与非网

    GMT+8, 2024-4-23 21:57 , Processed in 0.221341 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.