关键知识点:

1、brightness:设置亮度的意思,该属性文件可读可写。

2、trigger:表示触发模式,timer表示被定时器控制住。

关键应用代码的实现过程:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#define LED_TRIGGER "/sys/class/leds/sys-led/trigger"
#define LED_BRIGHTNESS "/sys/class/leds/sys-led/brightness"
#define USAGE() fprintf(stderr, "usage:\n" \ " %s \n" \ " %s \n", argv[0], argv[0])
int main(int argc, char *argv[])
{ int fd1, fd2;
/* 校验传参 */
if (2 > argc)
{
USAGE();
exit(-1);
}
/* 打开文件 */
fd1 = open(LED_TRIGGER, O_RDWR);
if (0 > fd1) {
perror("open error");
exit(-1);
}
fd2 = open(LED_BRIGHTNESS, O_RDWR);
if (0 > fd2) {
perror("open error");
exit(-1);
}
//根据传参控制 LED
if (!strcmp(argv[1], "on")) {
write(fd1, "none", 4); //先将触发模式设置为 none
write(fd2, "1", 1); //点亮 LED
} else if (!strcmp(argv[1], "off")) {
write(fd1, "none", 4); //先将触发模式设置为 none
write(fd2, "0", 1); //LED 灭
}
else if (!strcmp(argv[1], "trigger")) { //设置时间判断
if (3 != argc) {
USAGE();
exit(-1);
}
if (0 > write(fd1, argv[2], strlen(argv[2])))
perror("write error");
}
else USAGE();
exit(0);
}

最终:可以利用应用层实现对底层驱动的控制逻辑,LED灯的亮灭。

核心:利用应用层来控制底层驱动,各个开发板的底层是一致的,多多思考。