0
点赞
收藏
分享

微信扫一扫

OpenWrt:通过GPIO管脚控制LED灯


在Linux中,GPIO表达为设备文件, 对GPIO的操作采用文件读写方式即可完成, 这些设备文件在目录/sys/class/gpio/ 中,如下所示:

OpenWrt:通过GPIO管脚控制LED灯_组网


目录中文件或子目录的作用如下所示:

export    导出控制的GPIO引脚编号

unexport    取消控制的GPIO引脚编号

gpio*    对应的gpio引脚信息

我要控制的LED灯对应的gpio*文件夹为gpio11,但是/sys/class/gpio/中并没有这个文件夹,可以按下列步骤操作

1.导出gpio11

echo 11 > export

OpenWrt:通过GPIO管脚控制LED灯_引脚_02


2.然后需要设置该GPIO作为输入还是输出,这个LED灯是作为组网成功的指示灯的,所以我们需要输出

cd gpio11

echo out > direction

OpenWrt:通过GPIO管脚控制LED灯_#include_03


3.最后通过设置value为0或1来控制LED的开关

echo 1 > value

echo 0 > value

OpenWrt:通过GPIO管脚控制LED灯_组网_04


既然可以读写,那当然就通过编程来控制了,下列代码可以使该LED灯间隔1秒闪烁100次

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

int main(void)
{
FILE *f=nullptr;
int i=0;
for(;i<100;i++)
{
if(i%2==0)
{
f=fopen("/sys/class/gpio/gpio11/value","w");
fprintf(f,"%s","1");
fclose(f);
}
else
{
f=fopen("/sys/class/gpio/gpio11/value","w");
fprintf(f,"%s","0");
fclose(f);
}
sleep(1);
}

fclose(f);
return 0;
}

举报

相关推荐

0 条评论