我用CSerialPort做了个串口通信的程序,发现经常发不出去数据。
具体现象就是,我连接串口后发送数据老是不成功,我断开串口重新打开就有可能成功。
跟踪调试发现 一直能收到“读取事件”,进去是 CTS 信号 及 及读取字符(但是字符数量是0),并且这个信号一直有,导致CPU占用 30% 左右,各位大神我到底该怎样才能正常收发数据?
// create events
if (m_ov.hEvent != NULL)
ResetEvent(m_ov.hEvent);
m_ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (m_hWriteEvent != NULL)
ResetEvent(m_hWriteEvent);
m_hWriteEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

if (m_hShutdownEvent != NULL)
ResetEvent(m_hShutdownEvent);
m_hShutdownEvent = CreateEvent(NULL, TRUE, FALSE, NULL); // initialize the event objects
m_hEventArray[0] = m_hShutdownEvent; // highest priority
m_hEventArray[1] = m_ov.hEvent;
m_hEventArray[2] = m_hWriteEvent;        //就是这个经常取到的是 Event = 1;
        Event = WaitForMultipleObjects(3, port->m_hEventArray, FALSE, 1000);
        //这个经常取到的是 9
        GetCommMask(port->m_hComm, &CommEvent);[/code]串口通信