我正在使用 beaglebone 通过 sysfs 接口访问特定引脚的数字输入。我可以更改输出状态,但不能更改输入:(。我所做的是,我有两个引脚 pinA 和 pinB。pinA 我将其输出,pinB 我将其输入。将 pinA 连接到 pinB。通过发送将 pinA 配置为输出引脚通过传入到 sysfs 中的方向属性和 pinB 作为输入。我将 PinA 的值更改为 1,它给出 1 作为输出(我使用 LED 进行测试)。但是当我读取 PinB 的值时,它只给出 0,即使我将 0 传递给 pinA 的值,可能是什么原因?
谢谢 :)
据我了解,您遵循的步骤:
echo 7 > /sys/kernel/debug/omap_mux/gpmc_ad6
echo 38 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio38/direction
cat /sys/class/gpio/gpio38/value
我也犯了同样的错误,花了我几个小时,但答案很简单:以“echo 7”开头的第一行就是问题所在。查看复用位:
Bit 5: 1 - Input, 0 - Output
Bit 4: 1 - Pull up, 0 - Pull down
Bit 3: 1 - Pull disabled, 0 - Pull enabled
Bit 2 \
Bit 1 |- Mode
Bit 0 /
您输入的 echo 7 是 --> 0 0 0111,这意味着:位 0,1 和 2 为 1,因此模式已设置。没问题。但是您只是忘记设置它是输入还是输出。它应该是这样的:
echo 0x27 > /sys/kernel/debug/omap_mux/gpmc_ad6
您的位现在是:1 0 0111 二进制,即 0x27(十六进制)。
当你在输入时写下“cat /sys/class/gpio/gpio38/value”时,你可以看到一个美妙的1:)我相信你会像我一样非常高兴:)
另外,还有一件事,您的模拟输入电压约为 1.8V,但 GPIO 的工作电压为 3.3v。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)