process.write("echo 101 > /sys/class/gpio/export;echo low > /sys/class/gpio/gpio101/direction;" "echo 102 > /sys/class/gpio/export;echo in > /sys/class/gpio/gpio102/direction;cat /sys/class/gpio/gpio102/value\n");改成可以输入任意gpio口值的函数
时间: 2023-07-12 19:44:24 浏览: 198
可以使用函数参数来实现输入任意 GPIO 口的值,具体的代码如下:
```
void set_gpio_value(int gpio_num, char* direction, char* value) {
char command[100];
sprintf(command, "echo %d > /sys/class/gpio/export;echo %s > /sys/class/gpio/gpio%d/direction;"
"echo %s > /sys/class/gpio/gpio%d/value\n", gpio_num, direction, gpio_num, value, gpio_num);
system(command);
}
```
在调用该函数时,只需要传入对应的 GPIO 口号、方向和值即可,例如:
```
set_gpio_value(101, "low", "1");
```
这样就会将 GPIO101 口设置为输出模式并输出低电平,然后读取 GPIO102 口的值。
相关问题
"echo 97 > /sys/class/gpio/export;echo 98 > /sys/class/gpio/export;echo high > /sys/class/gpio/gpio97/direction;echo in > /sys/class/gpio/gpio98/direction;cat /sys/class/gpio/gpio98/value;echo low > /sys/class/gpio/gpio97/direction;cat /sys/class/gpio/gpio98/value\r\r\n# echo 97 > /sys/class/gpio/export;echo 98 > /sys/class/gpio/export;echo high > \r\r\r\n/sys/class/gpio/gpio97/direction;echo in > /sys/class/gpio/gpio98/direction;cat \r\r\r\n/sys/class/gpio/gpio98/value;echo low > /sys/class/gpio/gpio97/direction;cat /sy\r\r\r\ns/class/gpio/gpio98/value\r\r\nsh: write error: Device or resource busy\r\r\nsh: write error: Device or resource busy\r\r\n1\r\r\n0\r\r\n# "为何此字符串倒数第六个是0
对于这个字符串,我们可以将其每个字符的下标表示出来:
```
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
e c h o 9 7 > / s y s / c l a s s / g p i o / e x p o r t ; e c h o 9 8 > / s y s / c l a s s / g p i o / e x p o r t ; e c h o h i g h > / s y s / c l a s s / g p i o / g p i o 9 7 / d i r e c t i o n ; e c h o i n > / s y s / c l a s s / g p i o / g p i o 9 8 / d i r e c t i o n ; c a t / s y s / c l a s s / g p i o / g p i o 9 8 / v a l u e ; e c h o l o w > / s y s / c l a s s / g p i o / g p i o 9 7 / d i r e c t i o n ; c a t / s y s / c l a s s / g p i o / g p i o 9 8 / v a l u e \r \r \n # e c h o 9 7 > / s y s / c l a s s / g p i o / e x p o r t ; e c h o 9 8 > / s y s / c l a s s / g p i o / e x p o r t ; e c h o h i g h > \r \r \r \n / s y s / c l a s s / g p i o / g p i o 9 7 / d i r e c t i o n ; e c h o i n > / s y s / c l a s s / g p i o / g p i o 9 8 / d i r e c t i o n ; c a t \r \r \r \n / s y s / c l a s s / g p i o / g p i o 9 8 / v a l u e ; e c h o l o w > / s y s / c l a s s / g p i o / g p i o 9 7 / d i r e c t i o n ; c a t / s y
```
可以看出,该字符串的倒数第六个字符是 `0`。
具体来说,该字符串的最后部分是:
```
1\r\r\n0\r\r\n#
```
其中,倒数第六个字符是 `0`。
process.write("echo 98 > /sys/class/gpio/export;echo high > /sys/class/gpio/gpio98/direction;echo 99 > /sys/class/gpio/export;cat /sys/class/gpio/gpio99/value\n");为什么这个语句执行了两遍
根据你提供的信息,我猜测这段代码是在 Node.js 中使用 child_process 模块执行的,其中 process 是 child_process 模块提供的一个全局对象。如果你多次调用 process.write 方法,那么每次调用都会向子进程的标准输入写入数据。因此,如果你执行了多次 process.write 方法,那么子进程就会接收到多个相同的命令并执行多次。如果你只想执行一次命令,可以将这段代码放在一个函数中,然后只调用一次该函数。
阅读全文
相关推荐
















