串口通讯的一方要等待EV_CTS事件掩模,另一方如何才能触发该事件在线等

解决方案 »

  1.   

    应该就是改变CTS电平信号,怎样实现?up有分
      

  2.   

    BOOL GetCommMask(
      HANDLE hFile,
      LPDWORD lpEvtMask
    );
    BOOL SetCommMask(
      HANDLE hFile,
      DWORD dwEvtMask
    );
        sample blocks on ReadFile forever. BYTE Byte;
    DWORD dwBytesTransferred;// Specify a set of events to be monitored for the port.
    SetCommMask (hPort, EV_RXCHAR | EV_CTS | EV_DSR | EV_RLSD | EV_RING);while (hPort != INVALID_HANDLE_VALUE) 
    {
      // Wait for an event to occur for the port.
      WaitCommEvent (hPort, &dwCommModemStatus, 0);  // Re-specify the set of events to be monitored for the port.
      SetCommMask (hPort, EV_RXCHAR | EV_CTS | EV_DSR | EV_RING);  if (dwCommModemStatus & EV_RXCHAR) 
      {
        // Loop for waiting for the data.
        do 
        {
          // Read the data from the serial port.
          ReadFile (hPort, &Byte, 1, &dwBytesTransferred, 0);      // Display the data read.
          if (dwBytesTransferred == 1)
            ProcessChar (Byte);    } while (dwBytesTransferred == 1);
      }
    详细参看MSDN说明。
      

  3.   

    谢谢MuseIn,不过你说的是响应串口事件的方法,请问怎样才能触发EV_CTS事件
      

  4.   

    执行CreateFile和CloseHandle后是否触发EV_CTS事件木有人帮忙吗,很着急的说