2017-05-31 84 views
0

我不知道問題出在哪裏,我打開串口併發送消息它工作正常,但是當我點擊接收按鈕時,它沒有收到任何東西 我使用所有這些函數Read(),ReadLine(),ReadExisting(),ReadTo()。 沒有什麼工作c#serialport讀取功能不讀取數據

private void sendBtn_Click(object sender, EventArgs e) 
{ 
    if (!serialPort1.IsOpen) 
    { 
     try 
     { 
      serialPort1.Open(); 
      serialPort1.Write(textBox1.Text); 
     } 
     catch (Exception ez) 
     { 
      MessageBox.Show(ez.Message); 
     }  
    } 
    else 
    { 
     try 
     { 
      serialPort1.Write(textBox1.Text+"\n"); 
      textBox1.Text = "";    
     } 
     catch (Exception ez) 
     { 
      MessageBox.Show(ez.Message); 
     }   
    } 
} 

那麼這是接收數據的按鈕代碼

private void receiveBtn_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     textBox2.Text = serialPort1.ReadExisting(); 
    } 
    catch (TimeoutException z) 
    { 
     MessageBox.Show(z.Message)  
    } 
} 

enter image description here

+2

是,當你嘗試讀取它打開? –

+1

你知道你有你的串行端口傳入的數據? – DrNachtschatten

+0

儘量延長您的文章是一個最小的,完整的,verifyable例如,[這樣](https://stackoverflow.com/q/9505197/1132334),所以我們可以重現。例如,如何創建和配置'serialPort1'? – dlatikay

回答

0

串口imediatly發送數據。所以你需要在同一時刻閱讀收到這些數據的不同端口。 如果您需要在本地測試它,你需要一些串行端口環回的軟件,它可以添加虛擬口岸,使它們之間的虛擬連接。

必須有2個連接串口。

您可以使用this軟件創建2個串行端口和連接它們。而你的應用程序可以寫入一個端口並閱讀第二個。

+0

是的,我想在本地進行測試 –

+0

建議我好軟件 –

+0

@BasitRaza在回答你有鏈接,看起來不錯 – BWA