2015-10-14 32 views
-1

我正在做簡單的COM端口讀取應用程序。以下是我的DataReceive事件代碼。問題是:當我使用終端在COM端口上發送更多字符時,例如「TEST」,它只讀取前兩個字符,而計數器只增加2.這種情況一直沒有發生,接收數據多長時間。 任何想法什麼是錯的? 謝謝!Visual Studio#串行端口ReadChar()

 public void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) 
    { 
     GlobalVariable.ReceivedCharacter = serialPort1.ReadChar(); 
     GlobalVariable.Counter = GlobalVariable.Counter + 1; 
    } 

回答

0

發生這種情況,因爲您只讀取一個字符的消息。如果您需要從串口讀取文本,請使用ReadExisting。簡單示例:

public void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) 
{ 
    string recievedtext = serialPort1.ReadExisting(); 
} 

有關詳細信息,請參閱MSDN

如果你只需要一個字符,你可以寫這樣的事情:

var mychararray = recievedtext.ToCharArray();