2015-02-10 40 views
0

根據文檔isOpen返回SerialPort的打開或關閉狀態。現在,如果我嘗試打開正確的COM號碼中的端口,但波特率錯誤。理論上港口開放,但兩端無法溝通。所以即使連接不正確,isOpen方法也應該返回true。我是否正確理解這一點?當波特率錯誤時,SerialPort.isOpen會返回什麼?

+1

那麼端口仍然是開放的,所以它會返回'true'。當然,你可以試試這個比在這裏問一個問題更快! – DavidG 2015-02-10 14:01:55

+1

一旦串行端口打開,您可以嘗試在其上發送和接收數據。波特率影響數據的發送和接收方式,但與端口打開或關閉無關。 – ColinM 2015-02-10 14:07:11

+0

@DavidG嗯,這裏的東西,它在我的代碼中迴歸真實,但數據不是它應該的。我想知道問題出在波特率還是我的代碼上。如果波特率錯誤,並且isOpen返回false,那麼它肯定是我的代碼 – 2015-02-10 14:10:11

回答

1

當然,你可以用錯誤的波特率打開一個端口。 SerialPort真的不知道你需要哪個波特率,所以它會打開它,雖然沒有通訊夥伴具有相同的波特率。

所以是的,你是正確的理解,它會返回true。

+0

有關如何測試和查找設備正在處理的正確波特率的任何想法? – 2015-02-10 14:17:39

+0

你有什麼樣的設備? 你可以試試每一個通常的波特率,例如1200,2400,4800,9600 ......並檢查接收數據流是否看起來像預期的那樣。你可以使用Hercules或HTerm進行這個測試。 請問你應該爲此打開一個新的問題。 – Lui 2015-02-10 14:26:44

相關問題