如何关闭/处理先前实例中 gpio 打开的引脚

我使用称重传感器杆、HX711 放大器和树莓派 pi3。我正在尝试使用这里的库在 c # uwp 中创建一个具有多个窗口的应用程序https://github.com/ms-iot/hx711 但是每次我回到我读取传输的值的页面HX711 放大器我收到此错误:


抛出异常:Microsoft.Maker.Devices.Hx711.winmd WinRT 信息中的“System.IO.FileLoadException”:“Pin”当前以不兼容的共享模式打开。确保此引脚尚未被此应用程序或其他应用程序使用。


我知道这个错误是由于引脚在之前的实例中被打开了。我不知道如何检查它们是否打开,如果它们打开我将关闭它们,或者帮助我继续申请。


下面是我需要读取值的页面:


using System;

using System.Linq;

using Windows.UI.ViewManagement;

using Windows.UI.Xaml;

using Windows.UI.Xaml.Controls;

using Windows.UI.Xaml.Input;

using Windows.UI.Xaml.Media;

using Windows.UI.Xaml.Navigation;

using Windows.System;

using Windows.UI;

using Windows.UI.Xaml.Automation.Provider;

using Windows.UI.Xaml.Automation.Peers;

using Windows.Storage;

using Microsoft.Maker.Devices.Hx711;


namespace push_csharp_universal

{

    public sealed partial class MainPage : Page

    {

        public MainPage()

        {

            this.InitializeComponent();

            ApplicationView view = ApplicationView.GetForCurrentView();

            //view.TryEnterFullScreenMode();

            MainPage_Loaded();

        }


        public string epn = "";

        public string op = "";

        public string f1 = null;

        public string f2 = null;

        public double r = 0;

        public float s = 0;

        public int x = 1;

        Hx711 device;


        protected async override void OnNavigatedFrom(NavigationEventArgs e)

        {

            Main_page.Background = new SolidColorBrush(Colors.Green);

            device = null;

            device = new Hx711();

            op_text_view.Text = "";

            pn_text_view.Text = "";

            op_text_box_scan.Text = "";

            pn_text_box_scan.Text = "";

            op_text_box_scan.Opacity = 1;

            op_text_box_scan.Focus(FocusState.Programmatic);

            op_text_view.Opacity = 0;

            op_view_lbl.Opacity = 0;

            pn_text_box_scan.Opacity = 0;

            pn_view_lbl.Opacity = 0;

            pn_text_view.Opacity = 0;

        }


开满天机
浏览 302回答 1
1回答

犯罪嫌疑人X

首先,您应该检查与其中一个引脚的连接是否尝试建立两次。其次,您可以尝试在HX711库中添加以下方法,然后在离开当前窗口时调用该方法。public void Stop(){    if(clockPin != null )    {        clockPin.Dispose();    }    if(dataPin != null)    {        dataPin.Dispose();    }}
打开App,查看更多内容
随时随地看视频慕课网APP