我正在开发一个项目,将十六进制数据从我的计算机连续发送到串行 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);
}
当它停止时,我尝试通过单击开始按钮发送数据,但数据不会通过这些 com 端口发送,直到我不拔下 USB 电缆并再次插入,之后才可以工作。
任何人都可以建议我通信端口的真正问题是什么。他们是否通过向他们连续发送数据而被禁用。提前致谢