Win32,串行端口读/写和重叠
问题描述:
我正试图把读/写到串口的概念证明放在一起,而我遇到了设计/概念问题。我不想轮询,所以我试图使用重叠I/O。在这种情况下,它不是一个多线程应用程序 - 它只是使用高效的等待。Win32,串行端口读/写和重叠
- 开放端口(具有重叠)
- SetCommState(设置端口波特率,奇偶校验,CTS/RTS等)
- SetCommMask(EV_BREAK,EV_CTS,EV_DSR,...,EV_RXCHAR,EV_RXFLAG,EV_TXEMPTY)
- 创建OVERLAPPED结构和活动
- 的WriteFile(端口)
- WaitCommEvent(由于写)
- WaitCommEvent(因念)
- ReadFile的(从端口)
- 检查读缓冲
的MSDN例子是种跛脚(Monitoring Communications Events)。我目前使用两个事件,但ReadFile
步骤与ERROR_INVALID_PARAMETER
一起失败。
在上面的步骤中,我是否需要一个或两个重叠结构?如果一个OVERLAPPED
结构,是步骤WriteFile
,WaitCommEvent
(用于写入),重置事件,WaitCommEvent
(用于读取),ReadFile
?
你需要证明你实际的代码,而不是你的代码的说明,如果你期望任何人都能够帮助你。没有看到你实际传递给'ReadFile()'的参数,你期望得到帮助,找出它为什么会抱怨它们? –