设备重新插入后重新打开serialport

时间:2017-02-07 14:08:31

标签: c# serial-port

我正在使用SerialPort连接到arduino设备。现在,当设备断开连接时,程序不知道发生了什么。因为它会很糟糕,所以我把port.WriteLine()放在try catch中。

因为我使用定时器(ElapsedEventHandler)函数来定期检查连接,所以在端口重新打开/设备重新连接后,我会以某种方式重用此方法。

港口开放功能

private void timer_Tick(object sender, ElapsedEventArgs e)
    {

        try
        {
            port.BaudRate = 9600;
            port.PortName = "COM14";
            port.DtrEnable = true;
            port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
            port.Open();

        }
        catch { }
        string msg;
        if (port.IsOpen)
        {
            msg = "Status: device connected";

            timer.Stop();
        }
        else { msg = "Device disconnected"; }

        this.Dispatcher.Invoke(() => { status_lbl.Content = msg; });
    }

端口打开后,方法停止。 现在我写了一些代码,以便在设备拔出时重新启动它,但端口似乎是打开的。我也用port.Close()尝试了它,但它仍然不起作用。还尝试重新定义serialport,结果相同。

我错过了什么?

0 个答案:

没有答案