2011-08-16 59 views
0

我在論壇中有類似的問題。 Change baud rate in C# without closing connection。在那個問題中,我問如何在不關閉端口的情況下更改波特率。有人建議我關閉並重新打開港口,但在提出這個問題之前,我已經嘗試過了,但也沒有奏效。關閉並重新打開端口對我來說並不重要(第三方軟件也在使用同一個儀表進行交談,當我監視它時沒有關閉端口,所以我問這個問題,認爲它可能是線索)重要的是改變波特設備的速率。我在等待幫助。謝謝你的時間.. 費爾達Ozdemir無法更改C#中的波特率,即使端口已關閉並在設置新的波特率後重新打開

+0

你能詳細介紹一下你連接的設備嗎? – dbasnett

+0

嗨Dbasnett,我連接到一個電子電錶。它從300波特開始,然後到4800波特。該設備還有另一個軟件。我運行該軟件並監視端口。我看到它發送ACK命令到儀表,將波特率更改爲4800,並繼續讀取。但在我的軟件中,我發送了相同的命令到儀表,我無法再與它通信。 –

+0

您是否試過在4800處運行程序? – dbasnett

回答

0

我的serialport對象被定義在我的主要形式。我正在發送給我的閱讀功能作爲參數。並做所有的事情,如打開端口,設置波特率,寫入數據,關閉端口等,但我在另一個線程中運行此功能。當我嘗試更改波特率時,我認爲存在延遲或某種情況,所以我無法正確更改波特率。然後,我改變了我的代碼,現在我可以更改波特率並繼續與其他事情。謝謝你的幫助。

+0

您必須等到驅動程序有機會清空寫入緩衝區。在需要一段時間的300波特時,它只能每秒寫入30個字節。 –