簡體   English   中英

幾個小時后,C# 無法讀取串口?

[英]C# can't read serial port after few hours?

我有一個從設備讀取串口數據的項目,我的操作系統是 Windows 10。我讀過這個:

  1. C#串口檢查設備是否連接

2. 如果正在使用的 USB COM 端口已被移除,SerialPort.Close() 會凍結應用程序

但是如果沒有來自設備的輸入,我的代碼可能只能工作 6 小時。 現在的解決方案是再次打開表單后關閉表單。

 SerialPort myPort = new SerialPort();
   private void Scanning_Load(object sender, EventArgs e)
    {
        myPort.BaudRate = 9600;
        myPort.PortName = "COM4";
        if (SerialPort.GetPortNames().ToList().Contains(comPortname))
        {
            if (!myPort.IsOpen)
            {
                myPort.Open();
            }
             myPort.DataReceived += getReceivedata;
        }
     }
    private  void getReceivedata(object sender,
                             SerialDataReceivedEventArgs e)
    {
        SerialPort spL = (SerialPort)sender;
        string data_rx = spL.ReadLine();
        this.Invoke((MethodInvoker)delegate
        {
         Console.Write(data_rx);
        });
    }

這可能是電源管理(或電源選項)設置的結果。 您沒有說明您使用的是哪個操作系統,或者您的設備是否通過 USB 連接。

贏10:

  • 在“開始”圖標旁邊的搜索框中,鍵入:設備管理器
  • 右鍵單擊您想要的設備
  • 選擇“屬性”
  • 如果“允許計算機關閉此設備以節省電源”選項退出,請取消選中它。 單擊確定。

您可能需要查看的其他設置是“電源選項”,它可以在控制面板或開始圖標旁邊的搜索框中找到,鍵入:電源選項(然后單擊“其他電源設置”)。 既然你說它可以工作6個小時。 您可以檢查哪些設置設置為 6 小時(360 分鍾)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM