WIN32API串口测试程序的有关问题

WIN32API串口测试程序的问题
问题描述:
1
C/C++ code
OnInitial()
    {
         //同步操作方式
         hCon = CreateFile(g_ctrPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); 

         //设置消息[code=C/C++]

  SetupComm(hCon,1024,1024);
PurgeComm(hCon,PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
SetCommMask(hCon, EV_BREAK|EV_CTS|EV_DSR|EV_ERR|EV_RING|EV_RLSD|EV_RXCHAR|EV_RXFLAG|EV_TXEMPTY);
  }[/code]

2 发送线程

  
 
C/C++ code
 UINT SendToSeri(LPVOID param)
  {

         WriteFile(hCon,buffer_send,256,&dw_send,NULL);
    
    return 0;

  }


3 接收线程
C/C++ code
  UINT RecvFromSeri(LPVOID param)
{
    BOOL bResult =FALSE;
    DWORD dwEvent=0;
    DWORD dwError;
    SetCommMask(hCon, EV_BREAK|EV_CTS|EV_DSR|EV_ERR|EV_RING|EV_RLSD|EV_RXCHAR|EV_RXFLAG|EV_TXEMPTY);
    while(TRUE)
    {
        
       bResult=WaitCommEvent(hCon,&dwEvent,NULL);//问题所在的地方
        
        
       if (bResult)
       {
          
           AfxMessageBox("OK");//用来判断程序是否走到这一步
           switch(dwEvent)
           {
            case EV_RXCHAR:
                {
                   AfxMessageBox("OK");//用来判断程序是否走到这一步
                }
           }
        
       }
}


问题:
1 接收线程是在OnInitial()中启动的,在接收线程中,程序运行到
 
C/C++ code
bResult=WaitCommEvent(hCon,&dwEvent,NULL);

  就堵塞了,这是正常的;但是其后我调用发送线程,向串口发送数据,接收线程依旧堵塞在
 
C/C++ code
bResult=WaitCommEvent(hCon,&dwEvent,NULL);

  没有执行其后的代码

请教大家,这是怎么回事。。

------解决方案--------------------
在进循环之前
PurgeComm(port->m_hComm, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT);
------解决方案--------------------
呵呵,你肯定你的数据是读进去了