阅读类/ gpio总为0

时间:2019-04-04 08:57:18

标签: class raspbian gpio

我正在尝试编写一个通过类驱动程序读取GPIO的程序。我已将GPIO22设置为输入,将慢速振荡器连接到GPIO22,并且正在读取值文件。它始终为0,在期间内没有任何变化。如果我幸运地开始了一个好时机,它会显示为1。因此,这可能不是驱动程序问题。关闭有价文件然后再次打开它会产生很好的效果,但是很慢。

FILE *fd_gpio;

void errExit(char *msg) {
perror(msg);
exit(1);
}

void open_gpio(void) {

fd_gpio = fopen("/sys/class/gpio/gpio22/value", "rw");

if (fd_gpio == NULL) {
    if (system("echo '22' > /sys/class/gpio/export") == -1)
        errExit("GPIO22 handler creation");
fd_gpio = fopen("/sys/class/gpio/gpio22/value", "rw");
}
system("echo 'in' > /sys/class/gpio/gpio22/direction");
system("echo 'both' > /sys/class/gpio/gpio22/edge");
sleep(1);
}

void close_gpio(void) {
fclose(fd_gpio);
}


int main(int argc, char **argv) {
int i;
char value;

open_gpio();
for(i = 0; i < 10000000; i++) {
    rewind(fd_gpio);
    value = fgetc(fd_gpio);
    if (value != 48) printf("%i\n", value); }
close_gpio();
return 0;
 }

0 个答案:

没有答案