Raspberry Pi大型Arcade按钮Windows IoT核心ValueChanged事件触发了价值转换的不间断

时间:2019-01-04 00:54:04

标签: raspberry-pi3 gpio wiringpi

我刚刚购买了一个新的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事件,并且我可以知道该按钮已被单击并且当前值为“高”。

0 个答案:

没有答案