[問題] 曾開過的serial port 1st WriteFile 成功
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Visual Studio 2013
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
WinAPI
問題(Question):
使用com0com在PC上面create了virtual的 COM3 與 COM4
(COM3 與 COM4 對接)
針對 COM4 使用 handleCOM4 = CreateFile() 後 --> CloseHandle() 關閉
之後
針對 COM3 使用 handleCOM3 = CreateFile() 後 SetCommState() 等初始化
第一次使用 WriteFile(handleCOM3, message, length, write_bytes, NULL)
--> 寫入的 write_bytes 等於 length
第二次使用 WriteFile(handleCOM3, message, length, write_bytes, NULL)
--> 寫入的 write_bytes = 0
另一個情況是
COM4 從來沒用CreateFile()開過的話 上面第一次WriteFile()的 bytes就會是 0
我原本的預期是,針對COM4的處理在關掉之後
理論上 COM3 可寫入的 bytes應該會一直都等於 0
可是這樣子實驗過後,
發現只要 COM4 曾經開過再關掉,第一次WriteFile()就會成功 (write_bytes=length)
但 COM4 如果從來沒開過,第一次WriteFile() 寫入長度就 = 0
原本以為是buffer的問題,但使用PurgeComm()清buffer還是有一樣的行為
不知道各位板上的神人們,有沒有解決的辦法?
或是小弟在寫法上面忽略的什麼地方 orz?
非常感謝各位大大!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.141.241
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1444869656.A.149.html
→
10/15 11:09, , 1F
10/15 11:09, 1F
推
10/15 16:41, , 2F
10/15 16:41, 2F