Java GPIO状态更改未触发Pi4j事件侦听器

Java GPIO状态更改未触发Pi4j事件侦听器,java,raspberry-pi,event-listener,gpio,pi4j,Java,Raspberry Pi,Event Listener,Gpio,Pi4j,我有一个简单的Java程序,可以监听GPIO状态的变化。 我正在使用一个按钮更改GPIO的状态,从终端我可以看到它工作: 尽管如此,事件侦听器从未被触发。 代码如下: public class GpioHandler { private static final GpioController gpioController = GpioFactory.getInstance(); public static ButtonsHandler buttons; public

我有一个简单的Java程序,可以监听GPIO状态的变化。
我正在使用一个按钮更改GPIO的状态,从终端我可以看到它工作:


尽管如此,事件侦听器从未被触发。 代码如下:

public class GpioHandler
{
    private static final GpioController gpioController = GpioFactory.getInstance();
    public static ButtonsHandler buttons;

    public GpioHandler()
    {
        buttons = new ButtonsHandler(gpioController, RaspiPin.GPIO_05);
        buttons.listener();
    }
}
公共类按钮手柄
{
私有静态HashMap按钮=新建HashMap();
公共按钮手柄(GpioController GpioController,Pin…Pin)
{
对于(int c=0;cGPIO引脚状态更改:“+PIN.getKey()+”=“+event.getState());
}
});
}
}
}
我使用的是RaspberryPi 4和最新版本的Pi4j(1.2)。

有什么建议吗?

好吧,显然是我太笨了。
错误在于我使用了类gpiopingitaloutput而不是gpiopingitalInput。 我改变了它,也修改了这一行

buttons.put(index.toString(), gpioController.provisionDigitalOutputPin(pins[c]));
进入

以防止值浮动。

现在一切都正常了。

好吧,显然是我太傻了。
错误在于我使用了类gpiopingitaloutput而不是gpiopingitalInput。 我改变了它,也修改了这一行

buttons.put(index.toString(), gpioController.provisionDigitalOutputPin(pins[c]));
进入

以防止值浮动。
现在一切正常

buttons.put(index.toString(), gpioController.provisionDigitalInputPin(pins[c], PinPullResistance.PULL_DOWN));