今天,我们就站在巨人的肩膀上,利用内核开发者已经写好的驱动来实现我们想要的功能。
应用层控制
除了可以在shell中通过echo
、cat
的方式控制Led,我们也可以在写一个应用层程序来操作/sys/class/leds/
下的节点,应用层代码:
#include < stdio.h >
#include < stdlib.h >
#include < unistd.h >
#include < errno.h >
#include < fcntl.h >
#include < string.h >
#include < sys/stat.h >
#include < sys/types.h >
#define LED_DEV_PATH "/sys/class/leds/led%d/brightness"
#define ON
#define OFF
int fs4412_set_led(unsigned int lednum, unsigned int mode)
{
int fd;
int ret;
char devpath[128];
char *on = "1n";
char *off = "0n";
char *m = NULL;
snprintf(devpath, sizeof(devpath), LED_DEV_PATH, lednum);
fd = open(devpath, O_WRONLY);
if (fd == -1) {
perror("fsled- >open");
return -1;
}
if (mode == ON)
m = on;
else
m = off;
ret = write(fd, m, strlen(m));
if (ret == -1) {
perror("fsled- >wrtie");
close(fd);
return -1;
}
close(fd);
return 0;
}
int main(int argc, char *argv[])
{
unsigned int lednum = 2;
while(1){
fs4412_set_led(lednum, on);
usleep(500000);
fs4412_set_led(lednum, OFF);
usleep(500000);
lednum++;
if (lednum > 5)
lednum = 2;
}
return 0;
}
上述应用层代码执行后,led2会闪烁。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
led
+关注
关注
242文章
23256浏览量
660629 -
驱动
+关注
关注
12文章
1839浏览量
85270 -
Linux
+关注
关注
87文章
11296浏览量
209364 -
应用层
+关注
关注
0文章
46浏览量
11501
发布评论请先 登录
相关推荐
嵌入式Linux字符驱动LED灯设计
要写一个应用层的测试程序,用来测试驱动程序。我的测试程序为myled_test.c,要求在shell下能够通过该测试程序来控制LED灯的亮灭。如:./myled_test on表示灯全
发表于 02-03 14:28
鸿蒙Hi3516 纯手工打造从应用层到驱动层示例
在vendor\huawei\hdf\ 目录,新建驱动层LED目录,vendor\huawei\hdf\LED ;新建LED.c文件
发表于 11-06 09:56
【HiSpark AI Camera】鸿蒙Hi3516 纯手工打造从应用层到驱动层示例
vendor\huawei\hdf\ 目录,新建驱动层LED目录,vendor\huawei\hdf\LED ;新建LED.c文件
发表于 11-07 15:41
如何在嵌入式linux中应用层操作gpio口
嵌入式linux文件io方式操作gpio口示例在嵌入式linux中应用层操作gpio口,如果懒得写驱动或者懒得翻寄存器手册,有一种简单的方式
发表于 12-16 06:19
Linux驱动层的相关资料下载
// 再说明一下哈,你简历上写了你会驱动层,面试官才问,你不写,一般不会问。1、UBOOT的作用2、驱动包括哪几种3、yaffs、jffs文件系统的不同4、应用层与
发表于 12-24 07:25
【学习打卡】OpenHarmony的应用层说明
应用程序进行通信。关于OSI(开放系统互连)网络模型标准,可以参考下图,OSI 网络模型层是从硬件开始的较低级别到较高级别进行排列。需要注意的是应用层不是应用。相反,它其实是应用程序中的一个组件,我们可以
发表于 07-14 08:44
Linux驱动到底能不能在应用层开发驱动
的驱动程序也要跟着重新编译,太麻烦了。因此,我建议同事把驱动写到APP里面。同事大惊,Linux能在应用层开发驱动?
嵌入式Linux驱动 GPIO操作 包括驱动和应用层程序对驱动进行测试
文章目录代码驱动层代码应用层代码 测试驱动Makefile这里记录的是嵌入式linux驱动对gp
发表于 11-02 14:36
•10次下载
Linux应用层操作寄存器
--- > [*] /dev/mem virtual device support Linux应用层操作寄存器 除了直接使用devmem,我们也可以在Linux应用层自己实现一个de
评论