Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在具有uno平台的Raspberry Pi 4 B上使用Gpio_C#_Raspberry Pi4_Uno Platform_Pigpio - Fatal编程技术网

C# 在具有uno平台的Raspberry Pi 4 B上使用Gpio

C# 在具有uno平台的Raspberry Pi 4 B上使用Gpio,c#,raspberry-pi4,uno-platform,pigpio,C#,Raspberry Pi4,Uno Platform,Pigpio,我真的希望我不是唯一一个有这个问题的人 (我删除了我之前的问题,因为它似乎有点误导,所以这是我的第二次尝试) 我尝试使用Uno应用程序使用Rasbery pi 4b GPIO引脚: 我的设置: 我以前在Console应用程序中尝试过,它可以工作: 控制台应用程序代码: using System; using System.Device.Gpio; namespace ConsoleApp1 { class Program { static void Main(string[] ar

我真的希望我不是唯一一个有这个问题的人 (我删除了我之前的问题,因为它似乎有点误导,所以这是我的第二次尝试)

我尝试使用Uno应用程序使用Rasbery pi 4b GPIO引脚:

我的设置:

我以前在Console应用程序中尝试过,它可以工作:

控制台应用程序代码:

using System;
using System.Device.Gpio;


namespace ConsoleApp1
{
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Startet");


        int pin = 17;
        GpioController controller = new GpioController();
        controller.OpenPin(pin, PinMode.Output);


        Console.WriteLine("Enter to Turn HIGH");
        Console.Read();

        Console.WriteLine("is HIGH");
        controller.Write(pin, PinValue.High);


        Console.WriteLine("Enter to Turn LOW");
        Console.Read();

        Console.WriteLine("is LOW");
        controller.Write(pin, PinValue.Low);




    }
}
}
上面的代码运行良好。现在我在UNO的尝试:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

using System.Device.Gpio;

namespace App1
{

public sealed partial class MainPage : Page
   
{
    
    public MainPage()
    {
        this.InitializeComponent();
    }

    bool SwitchOnOffReminder;


    private void Test_Click(object sender, RoutedEventArgs e)
    {
    
        int pin = 17;
        GpioController controller = new GpioController();
        controller.OpenPin(pin, PinMode.Output);
        



        Ausgabe.Text = "Meldung\n";
        Ausgabe.Text = Ausgabe.Text + controller.GetPinMode(pin).ToString();

        if (SwitchOnOffReminder== false)
        {
            SwitchOnOffReminder= true;
            Ausgabe.Text = Ausgabe.Text + "Pin HIGH";
            controller.Write(pin, PinValue.High);


        }
        else
        {
            SwitchOnOffReminder= false;
            Ausgabe.Text = Ausgabe.Text + "Pin LOW";
            controller.Write(pin, PinValue.Low);

        }

    }
}
}
结果:它不工作,Raspberry控制台显示: Gtk上不支持Uno.UI.Runtime.skia.GtkCoreWindowsExtension[0]指针捕获版本”


有人能帮我吗?

正如@JérômeLaban在评论中回答的那样:

您可以在此处找到解决方案:
github.com/unoplate/uno/issues/3813

您要将哪个nuget软件包添加到您的应用程序中?如果它是
System.Device.Gpio
,您可能会遇到此问题:。另外,
Ausgabe.Text
是否在单击时被更改?@JôrômeLaban是的,正是我需要的!谢谢