代码如下 发现控制不了gpio 而且逻辑分析捕获的波形有规律但不是我想要的 而且SD卡不能用 是要设置什么东西才能用吗
!
#include <stdio.h>
int main(int argc,char** argv)
{
FILE* set_export;
int gpio_fd[4];
//打开设备节点
set_export = fopen ("/sys/class/gpio/export", "w");
if(set_export == NULL)printf ("Can't open /sys/class/gpio/export!\n");
else fprintf(set_export,"14");
fclose(set_export);
set_export = fopen ("/sys/class/gpio/export", "w");
if(set_export == NULL)printf ("Can't open /sys/class/gpio/export!\n");
else fprintf(set_export,"15");
fclose(set_export);
set_export = fopen ("/sys/class/gpio/export", "w");
if(set_export == NULL)printf ("Can't open /sys/class/gpio/export!\n");
else fprintf(set_export,"16");
fclose(set_export);
set_export = fopen ("/sys/class/gpio/export", "w");
if(set_export == NULL)printf ("Can't open /sys/class/gpio/export!\n");
else fprintf(set_export,"17");
fclose(set_export);
printf("enable gpio\n");
//设置成输出
set_export = fopen ("/sys/class/gpio/gpio14/direction", "w");
if(set_export == NULL)printf ("Can't open /sys/class/gpio/gpio14/direction!\n");
else fprintf(set_export,"out");
fclose(set_export);//设置
set_export = fopen ("/sys/class/gpio/gpio15/direction", "w");
if(set_export == NULL)printf ("Can't open /sys/class/gpio/gpio15/direction!\n");
else fprintf(set_export,"out");
fclose(set_export);//设置
set_export = fopen ("/sys/class/gpio/gpio16/direction", "w");
if(set_export == NULL)printf ("Can't open /sys/class/gpio/gpio16/direction!\n");
else fprintf(set_export,"out");
fclose(set_export);//设置
set_export = fopen ("/sys/class/gpio/gpio17/direction", "w");
if(set_export == NULL)printf ("Can't open /sys/class/gpio/gpio17/direction!\n");
else fprintf(set_export,"out");
fclose(set_export);//设置
printf("set gpio out\n");
gpio_fd[0] = open ("/sys/class/gpio/gpio14/value", O_RDWR);
gpio_fd[1] = open ("/sys/class/gpio/gpio15/value", O_RDWR);
gpio_fd[2] = open ("/sys/class/gpio/gpio16/value", O_RDWR);
gpio_fd[3] = open ("/sys/class/gpio/gpio17/value", O_RDWR);
while (1)
{
write(gpio_fd[0],"1",1);
write(gpio_fd[1],"1",1);
write(gpio_fd[2],"1",1);
write(gpio_fd[3],"1",1);
usleep(100000);
write(gpio_fd[0],"0",1);
write(gpio_fd[1],"0",1);
write(gpio_fd[2],"0",1);
write(gpio_fd[3],"0",1);
usleep(100000);
}
close(gpio_fd[0]);
close(gpio_fd[1]);
close(gpio_fd[2]);
close(gpio_fd[3]);
return 0;
}