我正在做一个项目,从我的计算机连续发送十六进制数据到串行com端口,然后通过RS232 USB线从com端口到LED(RGB灯)。有时它会工作10 -15个小时,然后几天就会停止向端口发送数据。
我正在使用DMX512控制器,FTDIUSB线和RS232驱动程序和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();
}
}
这是我的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);
}
当它停止时,我尝试通过单击start按钮发送数据,但数据不会通过这些com端口发送,直到我不拔下USB电缆并再次插入之后才能工作。
有没有人能给我提个建议,他们通过提前连续向ports.Did发送数据来禁用通信.Thanks的真正问题是什么?
发布于 2016-08-12 03:51:46
我也有这个问题,在我所有的研究之后,我发现它只发生在USB转串口,因为windows的省电关闭了它们。在附件图片中查看如何配置它。
https://stackoverflow.com/questions/38903317
复制相似问题