繁体   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