【问题标题】:Reading stream of bytes from serial port in C#从 C# 中的串口读取字节流
【发布时间】:2015-12-01 05:16:53
【问题描述】:

我是 C# 新手。我有一个串行(COM 端口)设备,它连续传输字节数组。该数组包含由微控制器读取的不同传感器的值。基本上每个传感器的值由 8 个字节显示,每个字节代表一个 ascii 字符。这些字节之间没有分隔符。在 32 个字节之后,我们有两个字节的一个回车符 (D) 和一个换行符 (A)。

我使用 serialPort1.ReadExisting() 从串口读取数据,然后在文本框中显示读数。但是,我需要这些传感器的数值来进行绘图和计算。如何将这些值转换为浮点数?或者我应该如何改变我读取串口的方式。

非常感谢您的帮助!

【问题讨论】:

  • 如果你读到“00011236”那么你可以使用Int32.Parse()转换成整数,否则取决于值的编码
  • 感谢您的回复。假设我的传感器的十进制值为 12.96;然后我在我的流中间得到这样的东西:32324950465754
  • 您可以尝试使用位 v[0]+v[1]*256... 如果 evalue 是整数,但如果它是浮点数,请检查设备手册上的实现

标签: c# arrays serial-port byte ascii


【解决方案1】:

要将字节转换为浮点数,您可以使用 BitConverter 对象。然后调用 ToSingle 方法。

请参阅HERE 以供参考。

听起来您需要阅读发送字节的设备的数据表才能知道大端或小端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 2021-04-03
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多