繁体   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