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

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

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

#include 
#include 
#include 


#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 
#include 
#include 
#include 
#include 
#include 

#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;
}

你可能感兴趣的:(Linux- 控制 LED 灯设备(LED 子系统))