2016-04-28 89 views
0

我正在從串口讀取數據。文本框中的默認值

  1. 我的文本框應該顯示爲默認的波特率9600價值爲我的serialport 當我運行程序。
  2. 如果我輸入新值(5200),它應該替換默認值。 有人可以幫忙嗎?

    `private void buttonStart_Click(object sender, EventArgs e) 
    { 
    
        serialPort1.BaudRate = Convert.ToInt32(textBox1.Text); 
    
        serialPort1.Open(); 
    
    } ` 
    

    Picture

+0

你想要設置什麼,文本框的值或串口的波特率? –

+0

感謝您的評論。我正在嘗試設置文本框的值。 – user6203007

+0

那麼在這種情況下,你的值賦值是錯誤的方法,你應該像這樣設置textBox的值'textBox1.Text = Convert.ToInt32(serialPort1.BaudRate);' –

回答

0

從我的經驗,我可以說你一兩件事 - 這是非常危險的,做這樣的事情。您應先關閉連接,然後再用不同的波特率打開它,因爲您的設備可能會忽略您的請求,但系統驅動程序不會......此類操作可能會導致緩衝區中的字符無效並執行意外的行爲。我從來沒有在我的應用程序中做過動態波特率更改,但如果系統以某種方式鎖定您的TextBox控件作爲某些連接設置的來源並以這種方式保留更改,那麼對我而言就不會感到意外。 嘗試關閉連接,然後更改您的TextBox值。

希望它能幫助你。

+0

我真的很抱歉,我誤解了你。我的意思是我應該可以選擇在運行程序時更改textBox的文本,而不是COM Port波特率。文本框的文本顯示一個字符串值(9600),我可以稍後將其轉換爲int形式並分配給SeriaPort的波特率。 – user6203007

+0

我現在明白了 - 您希望在連接開始之前設置TextBox值。好。如上所述,你是否檢查過「Enabled」和「ReadOnly」的適當結構? –

+0

感謝您表現出極大的耐心,並把我推向正確的方向:)它終於工作:)非常感謝你。 – user6203007