将我在Modbus上收到的Big endian值转换为浮点值

时间:2019-05-09 11:26:30

标签: arduino-ide

我正在为Modbus RTU编写一些代码,但是在转换接收到的数据时遇到问题。 下面是代码,我能够与从设备通信,但是我收到的信息根本没有意义。 从站地址为2000(十六进制值),数据块为2,十六进制响应为Float-Big Endian(ABCD)。 但是,当我通过串行打印查看时,这没有任何意义。任何可以帮助的人将不胜感激。

void loop()
{
  uint8_t j, result;

  uint16_t data[6];


// slave: read (6) 16-bit registers starting at register .. to RX buffer , this address is in Decimal, so convert hex to decimal to use correct address
  result = node.readHoldingRegisters(8192, 2);

  // do something with data if read is successful
  if (result == node.ku8MBSuccess)
  {
    for (j = 0; j < 6; j++)
    {
      data[j] = node.getResponseBuffer(j);

Serial.println(data[j]);

    }
  }


  delay(1000);
}

0 个答案:

没有答案