我在嵌入式定制板上使用 Linux(内核 5.8.17),并有一个脚本使用 libgpiod 包执行一些 gpioget 和 gpioset 操作。使用 gpioset 设置输出引脚效果很好,使用 gpioget 获取输入引脚的值也是如此。但是当我需要知道输出引脚的当前值时,使用 gpioget 会更改引脚值和方向。
这是一个例子:
~# gpioinfo |grep MB_AC_ON
line 230: "MB_AC_ON" unused output active-high
~# gpioset $(gpiofind "MB_AC_ON")=1
~# gpioget $(gpiofind "MB_AC_ON")
0
~# gpioinfo |grep MB_AC_ON
line 230: "MB_AC_ON" unused input active-high
将引脚设置为“1”有效。但随后使用 gpioget 检查同一引脚的当前值,该值变为“0”,方向变为输入。甚至可以使用 libgpiod 获取 gpio 输出的值吗?