2012-09-19 168 views
3

我正試圖把讀/寫到串口的概念證明放在一起,而我遇到了設計/概念問題。我不想輪詢,所以我試圖使用重疊I/O。在這種情況下,它不是一個多線程應用程序 - 它只是使用高效的等待。Win32,串行端口讀/寫和重疊

  1. 開放端口(具有重疊)
  2. SetCommState(設置端口波特率,奇偶校驗,CTS/RTS等)
  3. SetCommMask(EV_BREAK,EV_CTS,EV_DSR,...,EV_RXCHAR,EV_RXFLAG,EV_TXEMPTY)
  4. 創建OVERLAPPED結構和活動
  5. 的WriteFile(端口)
  6. WaitCommEvent(由於寫)
  7. WaitCommEvent(因念)
  8. ReadFile的(從端口)
  9. 檢查讀緩衝

的MSDN例子是種跛腳(Monitoring Communications Events)。我目前使用兩個事件,但ReadFile步驟與ERROR_INVALID_PARAMETER一起失敗。

在上面的步驟中,我是否需要一個或兩個重疊結構?如果一個OVERLAPPED結構,是步驟WriteFileWaitCommEvent(用於寫入),重置事件,WaitCommEvent(用於讀取),ReadFile

+1

你需要證明你實際的代碼,而不是你的代碼的說明,如果你期望任何人都能夠幫助你。沒有看到你實際傳遞給'ReadFile()'的參數,你期望得到幫助,找出它爲什麼會抱怨它們? –

回答

相關問題