Winapi Win32,串行端口读/写和重叠

Winapi Win32,串行端口读/写和重叠,winapi,serial-port,wait,Winapi,Serial Port,Wait,我正试图为读/写串行端口提供概念证明,但我在设计/概念方面遇到了问题。我不想轮询,所以我尝试使用重叠I/O。在这种情况下,它不是一个多线程应用程序-它只是使用高效的等待 开放端口(重叠) SetCommState(设置端口波特率、奇偶校验、CTS/RTS等) 设置通信掩码(EV_中断、EV_CTS、EV_DSR、…、EV_RXCHAR、EV_RXFLAG、EV_TXEMPTY) 创建重叠的结构和事件 写入文件(到端口) WaitCommEvent(由于写入) WaitCommEvent(由于读取

我正试图为读/写串行端口提供概念证明,但我在设计/概念方面遇到了问题。我不想轮询,所以我尝试使用重叠I/O。在这种情况下,它不是一个多线程应用程序-它只是使用高效的等待

  • 开放端口(重叠)
  • SetCommState(设置端口波特率、奇偶校验、CTS/RTS等)
  • 设置通信掩码(EV_中断、EV_CTS、EV_DSR、…、EV_RXCHAR、EV_RXFLAG、EV_TXEMPTY)
  • 创建重叠的结构和事件
  • 写入文件(到端口)
  • WaitCommEvent(由于写入)
  • WaitCommEvent(由于读取)
  • 读取文件(从端口)
  • 检查读取缓冲区
  • MSDN的例子有点蹩脚()。我目前正在使用两个事件,但是
    ReadFile
    步骤失败,参数
    无效


    在上述步骤中,我需要一个或两个重叠结构吗?如果一个
    重叠
    结构,步骤是
    WriteFile
    WaitCommEvent
    (用于写入),reset event,
    WaitCommEvent
    (用于读取),
    ReadFile

    看看这篇文章,关于如何将重叠的I/O与串行端口一起使用,会更为彻底:


    如果您希望有人能够帮助您,则需要显示您的实际代码,而不是代码的描述。如果看不到您实际传递给
    ReadFile()
    的参数,您希望如何获得帮助,找出它抱怨这些参数的原因?