我正在尝试使用树莓派 3 B 型让 LED 闪烁,
我的机器上安装了所有必需的模块,即 npm 、 nodejs 、 pi-gpio (修复了检测 gpio 的微小更改)
代码是:
var gpio = require("pi-gpio");
gpio.open(16, "output", function(err) {
gpio.write(16, 1, function() {
gpio.close(16);
});
});
//reading the data on the pin i.e pin : 16
gpio.open(16, "output", function (err) {
gpio.read(16, function (err, value) {
console.log("Data is "+ value);
gpio.close(16);
});
});
但上面的代码在运行时会抛出错误,
节点应用程序.js
错误 :尝试打开引脚 16 时出错
gpio-admin:无法将数据刷新到/sys/class/gpio/export:设备或资源繁忙
提前致谢
我可以看到电路图和代码的任何链接。
担忧:我不想改变平台。节点.js
我正在使用的 pi-gpio 是:https://github.com/rakeshpai/pi-gpio
pi-gpio
只是在后台写入 GPIO 设备,因此您可以跳过node.js
and pi-gpio
并手动执行相同的操作以进行测试。
Example:
gpio.open(16, ...
# is the same as writing in terminal:
echo 16 > /sys/class/gpio/export
and
... "output" ...
# is the same as writing in terminal:
echo "out" > /sys/class/gpio/gpio16/direction
etc.
首先,尝试重新启动 Pi,看看是否可以解决问题。
如果这没有帮助,请尝试以 root 身份手动关闭/取消导出引脚,然后重新运行脚本。
# unexport the pin as root in case something's holding on to it
sudo echo 16 > /sys/class/gpio/unexport
下面的命令基本上构成了pi-gpio
API。您可以将这些行放入 shell 脚本中来控制 GPIO。首先按照我编写它们的顺序在不使用 sudo 的情况下测试它们,如果它们不起作用,请尝试使用 sudo。如果它们仍然不起作用,我认为您存在接线/硬件问题,或者需要在其他地方更改一些系统设置。
# unexport the pin
sudo echo 16 > /sys/class/gpio/unexport
# export it again
sudo echo 16 > /sys/class/gpio/export
# make it an output
sudo echo "out" > /sys/class/gpio/gpio16/direction
# write a HIGH - is the LED on now?
sudo echo 1 > /sys/class/gpio/gpio16/value
# read the value of the pin - is it 1 after writing a 1 to the pin?
cat /sys/class/gpio/gpio16/value
# write a LOW - did it turn off?
sudo echo 0 > /sys/class/gpio/gpio16/value
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)