簡體   English   中英

附加字符串時C#SerialPort DataReceived問題

[英]C# SerialPort DataReceived problem when when attached strings

我有一個DataReceived方法,該方法正在觸發從RS232設備發送數據。 使用以下代碼,事情可以順利進行

byte[] data = new Byte[serialPort.BytesToRead];
serialPort.Read(data, 0, data.Length);
string read = System.Text.Encoding.ASCII.GetString(data);

但是如果我在數據后添加字符串

string read = System.Text.Encoding.ASCII.GetString(data) + "asdf \n";

數據仍然可以接收,但是偶爾會顯示不正確。 例如,如果我正在連接磅秤,並且應該讀取“ 10.45kg asdf”,它將在計算機上顯示為“ 10. asdf45kg”。 這里有什么問題?

當串行端口感覺像觸發它時,將觸發DataReceived方法,而當您從設備接收到完整的字符串時,則不一定要觸發該方法。 有關詳細信息的詳細討論,請參見此SO答案 如果您有一個已知的終止符,則可以通過設置SerialPort的NewLine屬性,然后使用ReadLine()來解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM