看板 Visual_Basic 關於我們 聯絡資訊
最近在使用Serial Port時遇到了一個問題, 找了很久都還沒有辦法解決, 所以想請教一下各位下面的問題, 我使用的線材為USB轉RS232之線材, 當我執行我的介面時且COM Port也已經連上, 然後執行過程中我突然將USB轉RS232拔掉後再將整個介面關掉後, 就會跳出一視窗顯示拒絕存取通訊埠, 請問一下這是我哪沒注意到嗎??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.116.14
nobody1:要防呆呀 不然就別一直開開關關的 12/14 21:37
nobody1:While (Environment.TickCount-i<2000 And _isReceiviing) 12/14 21:52
nobody1:Application.DoEvents() 12/14 21:52
nobody1:塞一點時間給他 12/14 21:52
我並沒有做任何傳送接收的動作, 只是在連上Serial Port後將線材拔除, 然後直接將程式關閉下來, 就會出現此現象,好像跟Delay沒關係 ※ 編輯: JingTeng 來自: 61.57.116.14 (12/14 23:30)
nobody1:serial還沒有open? 那就隨便插拔也沒關係吧 12/15 00:37
nobody1:連上了的話要緩衝區要動一動才知道有沒資料進來 12/15 00:38
nobody1:不管有沒有資料沒進來都是在"等" 插不插上電腦也不會知道 12/15 00:39
nobody1:猜猜看 你一定沒試我說的東西對吧~ XD 12/15 00:42
請教一下nobody1,這個_isReceiving該怎麼使用? 使用情況是SerialPort1已經Open了, 然後將線材拔出後將Form關閉所出現的問題, 因為我不知道該怎麼使用_isReceiving, 所以我直接在Form_Closing裡加上Delay, 結果也是沒辦法解, 請問該怎麼做呢???
OPOQ:有可能是因為要關閉程式 會執行到serial port 的close 12/15 10:33
OPOQ:但執行close 時 rs232 卻已經被拔掉了 12/15 10:33
是的,但我的情況是只要線材一拔除, Serial Port就會變關閉, 即使再去close仍然無法解決此問題, 有沒有高手能幫忙阿??? 謝謝 ※ 編輯: JingTeng 來自: 61.57.116.14 (12/15 20:36)
mraaa:我自己試是發現...如果Open了沒有Close就把程式結束掉... 12/16 01:06
mraaa:他並不會自動關閉..因此當你下次在執行程式要Open的時候就會 12/16 01:07
mraaa:出錯.... 12/16 01:07
nobody1:_isReceiviing是自己設的變數 用意在說明close時要等一下 12/16 10:00
nobody1:google一下囉 ^^ 12/16 10:02