簡體   English   中英

工作7至8小時后,通訊端口卡住或停止發送串行通信

[英]Com ports get stuck or stop sending serial communication after working for 7-8 hours

我正在進行一個項目,該工作是將十六進制數據從計算機連續發送到串行com端口,然后再通過RS232 USB電纜從com端口發送到LED(RGB燈)。 有時它會工作10 -15個小時,隔幾天就會停止向端口發送數據。

我正在使用DMX 512控制器,帶有FTDI驅動程序的RS232 USB電纜和c#語言進行編碼,以使用SerialPort類發送數據。

這是我的代碼:

public static GO () 
{
    try
    {
        dmx = new Dmx(2, 0);

        Thread mTh1 = new Thread(() => dmx.Start(RGBdata1, RGBdata2, RGBdata3)); 

        Global.tmrStarted = true;  // test it,ok

        mTh1.Start();
    }
}

這是我將數據發送到3個端口的啟動方法

while (Global.tmrStarted)
{
    Break();
    Thread.Sleep(500); 
    if (m_port == null || m_port.IsOpen == false) return;
    m_port.Write(new byte[] { 0 }, 0, 1);
    SendData();


    Break1();
    if (m_port1 == null || m_port1.IsOpen == false) return;
    m_port1.Write(new byte[] { 0 }, 0, 1);
    SendData1();
    Break2();

    if (m_port4 == null || m_port4.IsOpen == false) return;
    m_port4.Write(new byte[] { 0 }, 0, 1);
    SendData2();

    Thread.Sleep(100);
}

當它停止時,我嘗試通過單擊“開始”按鈕發送數據,但是直到我不拔掉USB電纜並再次插入后,這些數據才通過那些com端口發送。

任何人都可以建議我通信端口的真正問題。通過連續向其發送數據來禁用它們嗎?

我也遇到了這個問題,經過全部研究,我發現它僅在USB到串行COM中發生,因為Windows的省電功能將其關閉。 請參閱附圖中的配置方法。 在此處輸入圖片說明

暫無
暫無

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

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