我刚刚购买了一个新的Pi,并附带了一个HERE的大型拱廊按钮和一个HERE的快速连接器。我查找了许多不同的指南,以了解如何用不同的语言来完成我想做的事情,但是找不到直接在C#中做到这一点的任何指南。
免责声明:这是我第一次将任何东西都连接到我只写过UI软件的Pi板上。
这是我的代码:
GpioPin button1;
public MainPage()
{
this.InitializeComponent();
SetupGpioPin();
}
private void SetupGpioPin()
{
// Get the default GPIO controller on the system
GpioController gpio = GpioController.GetDefault();
if (gpio == null)
return; // GPIO not available on this system
button1 = gpio.OpenPin(21);
// Set the IO direction as Input
button1.SetDriveMode(GpioPinDriveMode.Input);
var curState = button1.Read();
button1.ValueChanged += Pin_ValueChanged;
}
private void Pin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args)
{
Debug.WriteLine($"Pin Value: {button1.Read()}");
Debug.WriteLine("Button Event has happened");
}
我有这样的按钮设置;白色连接器连接到按钮开关的顶部连接器,蓝色连接器接地?或开关的全黑侧面。然后匹配这些连接器,使白色电缆连接至板上的引脚40,蓝色电缆连接至板上的引脚39。
我启动我的代码,ValueChanged事件不停地触发,而引脚值从高到低。单击该按钮不会执行任何操作。
期望的结果是该按钮位于较低位置,并且在单击时触发了Value change事件,并且我可以知道该按钮已被单击并且当前值为“高”。