gpt4 book ai didi

java - PI 中使用 Java 的 GPIO 引脚监听器导致 Action 事件的爆发

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:07 25 4
gpt4 key购买 nike

在这个程序中,我可以读取GPIO 引脚。但是按下硬件按钮(GPIO 引脚与按钮连接)单个事件会导致突发状态变化并导致突发 Action 事件。那么如何消除同时发生的 GPIO 状态变化在一定的时间段内消除这种爆发。

final GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput myButton = null;
try {
myButton = gpio.provisionDigitalInputPin(RaspiPin.GPIO_02,PinPullResistance.PULL_DOWN);
} catch(GpioPinExistsException e) {
}

try {
myButton.addListener(new GpioPinListenerDigital() {
@Override
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) {
if(event.getState().toString().equalsIgnoreCase("HIGH") || event.getState().toString().equalsIgnoreCase("LOW")) {
System.out.println("Pressed");
}
}
});
} catch(NullPointerException e2) {
}

最佳答案

似乎 API 正在按预期工作,例如,当您按下按钮时,电流将开始流向读取引脚作为返回,该引脚将一直保持高电平状态,直到您释放按钮。你必须做的是有一个国家并控制新闻和发布。

try {
myButton.addListener(new GpioPinListenerDigital() {

private boolean pressed = false;
private boolean released = false;

@Override
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) {
String state = event.getState().toString();
if (state.equalsIgnoreCase("HIGH")) {
pressed = true;
released = !pressed;
} else {
released = true;
pressed = !released;
}

// Do what you want with it.
}
});
} catch(NullPointerException e2) {

}

关于java - PI 中使用 Java 的 GPIO 引脚监听器导致 Action 事件的爆发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27791173/

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