gpt4 book ai didi

linux - 尽管命令行未按预期工作,但设置/重置 GPIO

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:02 29 4
gpt4 key购买 nike

我正在尝试通过 sysfs 设置/重置 GPIO 值。我拍了this文档作为引用。

有一次我有点困惑,场景如下所示

导出gpio 200进行测试

mx6q:/sys/class/gpio/gpio200# echo "out" > direction   <-- set the direction as write(out)
mx6q:/sys/class/gpio/gpio200# cat direction < -- just to verify
out
mx6q:/sys/class/gpio/gpio200# echo 1 > value < -- set value as 1(high)
mx6q:/sys/class/gpio/gpio200# cat value
1
mx6q:/sys/class/gpio/gpio200# echo 0 > value < -- set value Low again
mx6q:/sys/class/gpio/gpio200# cat value
0
mx6q:/sys/class/gpio/gpio200# cat direction
out
mx6q:/sys/class/gpio/gpio200# echo "in" > direction < -- change the direction to read the pin
mx6q:/sys/class/gpio/gpio200# cat direction
in
mx6q:/sys/class/gpio/gpio200# cat value < -- what i am expecting here is 0 (last set value)
1

所以不管我之前设置的值是多少,我总是读到一个高值。这真的是预期的行为吗?我在两点上感到困惑,

  1. 为什么在我改变方向后之前设置的值不存在?
  2. “方向”的真正含义是什么,如果我可以在“内”和“外”情况下寻找值(value)?

请建议阅读适当的文档以清楚了解 GPIO 操作。提前致谢

最佳答案

what does the "Direction" really means, if i can cat for the value in both "in" and "out" case?

这个问题有点不清楚,但也许这有帮助:

如果directionout,那么value中的数据定义了你想要设置的逻辑电平GPIO 引脚。

如果directionin,那么value中的数据就是当前正在读取的逻辑层级GPIO 引脚。

why the previously set value is not persisting after i change the direction?

想象一下,您将引脚接地。

如果你将方向设置为out并将1写入value,那么当然当你读回value时> 你会看到 1 因为这是你刚刚请求的。

如果您随后将 direction 设置为 in,则 value 现在将读取 0,因为您有引脚接地,因此您当前正在从引脚读取逻辑 0。

关于linux - 尽管命令行未按预期工作,但设置/重置 GPIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47773131/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com