Auslesen CAN-BUS, RS-485 oder RS-232 (nur Auslesen)

Wenn das nicht funktioniert, wäre es gut zu zeigen, was Du machst.
Das zusammensetzen der Zahl ist ja nur aus 4 Bytes :slight_smile:

uint8_t rxBuf[] = {0xBD, 0xBF, 0xBE, 0x15, 0x59, 0x00, 0x00, 0x00};
uint32_t batteryVoltage;

void setup()
{
  Serial.begin(115200);
  Serial.println(F("\r\nStart...\r\n"));

  for (byte b = 0; b < 8; b++)
  {
    Serial.print(F("DATA"));
    Serial.print(b);
    Serial.print(": 0x");
    Serial.println(rxBuf[b], HEX);
  }

  batteryVoltage = rxBuf[4];
  batteryVoltage += static_cast < uint32_t > (rxBuf[3]) << 8;
  batteryVoltage += static_cast < uint32_t > (rxBuf[6]) << 16;
  batteryVoltage += static_cast < uint32_t > (rxBuf[5]) << 24;
  Serial.print(F("Batteriespannung: 0x"));
  Serial.print(batteryVoltage, HEX);
  Serial.print("  /  ");
  Serial.print(batteryVoltage / 100.0);
  Serial.print('V');
}

void loop()

{}

Bei mir tuts:

04:46:20.351 -> Start...
04:46:20.351 -> 
04:46:20.351 -> DATA0: 0xBD
04:46:20.351 -> DATA1: 0xBF
04:46:20.351 -> DATA2: 0xBE
04:46:20.351 -> DATA3: 0x15
04:46:20.351 -> DATA4: 0x59
04:46:20.351 -> DATA5: 0x0
04:46:20.351 -> DATA6: 0x0
04:46:20.351 -> DATA7: 0x0
04:46:20.351 -> Batteriespannung: 0x1559  /  54.65V