急,在线等待!
有个串口的问题,希望大家帮帮忙!
开辟一个线程,让串口一直处于监控读数据当中,但这时又要发数据,怎么实现!若退出线程的话,可能又错失读数据!
打开串口时用异步方式
m_hCom = ::CreateFile(串口名,
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);
读串口时采用如下操作
OVERLAPPED overlapped;
overlapped.hEvent=CreateEvent(NULL.TRUE,FALSE,NULL);
……
ReadFile(m_hCom, m_szInBuffer, nWantRead, &nRealRead, &overlapped);
//立即返回,不会阻塞
..........................
通过
GetOverlappedResult(m_hCom, &overlapped, &nRealRead,TRUE);//监测是否读完
……
然后再
ResetEvent(overlapped.hEvent);