Linux

Linux- 控制 LED 灯设备(LED 子系统)

2022-01-17  本文已影响0人  飞向深空

C库方式
/sys 目录用于把内核的设备驱动导出到用户空间,可通过访问 sys 目录及其下
的文件,来查看甚至控制内核的一些驱动设备。
硬件设备也是文件,通过打开对应的设备文件可以初始化设备,部分设备还可以通过读写设备文件实现对硬件的控制。

下面对电脑的大写锁定LED灯进行闪烁操作

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


#define capslock_led "/sys/class/leds/input2::capslock/brightness"
int main(int argc,char *argv[])
{
        FILE *caps;

        caps = fopen(capslock_led,"w");
        if(caps<0)
        {
                printf("Fail to Open %s device\n",capslock_led);
                exit(1);
        }

        while(1)
        {
                fwrite("255",3,1,caps);
                fflush(caps);

                sleep(1);

                 fwrite("0",1,1,caps);
                fflush(caps);
                sleep(1);
        }
        return 0;
}


系统调用方式

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>

#define capslock_led "/sys/class/leds/input2::capslock/brightness"
int main(int argc,char *argv[])
{
        FILE *caps;

        caps = open(capslock_led , O_WRONLY);
        if(caps<0)
        {
                printf("Fail to Open %s device\n",capslock_led);
                exit(1);
        }

        while(1)
        {
                write(caps,"255", 3);
                sleep(1);

                write(caps,"0", 1);
                sleep(1);
        }
        return 0;
}

上一篇 下一篇

猜你喜欢

热点阅读