在Linux中,GPIO表达为设备文件, 对GPIO的操作采用文件读写方式即可完成, 这些设备文件在目录/sys/class/gpio/ 中,如下所示:
目录中文件或子目录的作用如下所示:
export 导出控制的GPIO引脚编号
unexport 取消控制的GPIO引脚编号
gpio* 对应的gpio引脚信息
我要控制的LED灯对应的gpio*文件夹为gpio11,但是/sys/class/gpio/中并没有这个文件夹,可以按下列步骤操作
1.导出gpio11
echo 11 > export
2.然后需要设置该GPIO作为输入还是输出,这个LED灯是作为组网成功的指示灯的,所以我们需要输出
cd gpio11
echo out > direction
3.最后通过设置value为0或1来控制LED的开关
echo 1 > value
echo 0 > value
既然可以读写,那当然就通过编程来控制了,下列代码可以使该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;
}
原文链接:https://blog.csdn.net/caoshangpa/article/details/78582158