2

我正在使用串行端口从秤读取数据。通信工作正常,但我从串口收到垃圾。

一个例子:

???s.R?????0?   ??o???????0?    ??o???????0?

我的问题是,我不知道秤的行为。我不知道它是给我发送十六进制、二进制还是什么。而且我不知道它实际发送的价值是什么。我没有任何关于规模的文件来研究它。

所以我猜,默认情况下,通常通过串行端口发回的内容以及如何将其转换为可读值?

4

1 回答 1

4

许多问号表明 SerialPort 设置错误。从波特率开始,接下来是奇偶校验。

如果秤发送二进制数据,则 Encoding 属性很重要。默认值为 ASCII,因此如果二进制数据中的字节 >= 128,则会生成很多问号。在这种情况下,您应该使用 Read() 而不是 ReadLine()。你想用哪个来开始解决这个问题,你想查看原始字节值,从问号看不到太多。请特别注意从读数中获得的最后一两个字节,它们应该很好地重复。

于 2012-05-18T13:50:54.607 回答