以下代码给了我一个小问题。
public void ButtonShort()
{
lcd.WriteLine(" K ");
GpioPinValue Readbutton = ButtonS.Read();
if (buttonS == GpioPinValue.Low)
{
Temp = Temp + "K";
}
}
Temp是一个默认为空的列表。所以按下每个按钮都应该添加一个' K'。 但它实际上注册了' K'多次。
我想要的是按下一个按钮只能注册一个' K'。
感谢您的帮助!
答案 0 :(得分:0)
我无法直接帮助您使用C#,但在使用Java和Pi4J Lib进行GPIO访问时,我遇到了类似的问题。
在那里,您有由更改输入引脚值触发的事件。我抓住了那个事件并检查了例程,状态是高还是低,取决于实际的计数触发器。
Java中的代码非常紧张:
public void handleGpioPinInputStateChangeEvent(GpioPinDigitalStateChangeEvent event) {
if (event.getState() == PinState.HIGH) {
[...]
}
}
[编辑 - 感兴趣...: - )]
也许here中的以下代码会有所帮助:
private void buttonPin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs e)
{
// toggle the state of the LED every time the button is pressed
if (e.Edge == GpioPinEdge.FallingEdge)
{
ledPinValue = (ledPinValue == GpioPinValue.Low) ?
GpioPinValue.High : GpioPinValue.Low;
ledPin.Write(ledPinValue);
}
[...]