npm gpio 初始化 gpio 引脚值错误

npm gpio wrong initialized gpio pin value

我正在使用这个 gpio library 来读取 gpio 引脚的值。这是我用来初始化和读取 gpio 引脚的代码:

var gpio38 = gpio.export(38, {

    direction: gpio.DIRECTION.IN,
    interval: 200

});

gpio38.on("change", function(val) { 

    if(val == 1)
        console.log("high") 
    else {
        console.log("low")
    }

});

console.log(gpio38.value); //this is where the problem is

从代码中可以看出,gpio引脚设置为输入,会根据物理开关变化。 change 功能完美运行,当开关打开时将打印 high,关闭时将打印 off

我遇到的问题是,当我尝试在初始化后立即打印 gpio38 的值时,当我打开开关时,它总是读取 0,即使那个值的值gpio 引脚为 1(通过读取引脚电压和 Linux 文件系统确认)。

如何读取引脚的正确值?

为了解决这个问题,我最终走出了图书馆,在我的代码中使用了 Linux 命令来确保 GPIO 引脚被导出。我还在初始启动时读取了导出的 GPIO 文件的 value 文件以查看值,然后让库在引脚值更改中工作:

exec('echo 38 > /sys/class/gpio/export');
exec('echo 36 > /sys/class/gpio/export');

var pin38_value = parseInt(fs.readFileSync('/sys/class/gpio/gpio38/value', 'utf8'));
var pin36_value = parseInt(fs.readFileSync('/sys/class/gpio/gpio36/value', 'utf8'));