• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
esp32 ramka modbus rtu hex to float convert
#1
Witam, mam problem z zamianą liczby hex na float, poniżej zamieszczam kod. Oprócz tego wszystko działa. Czy ktoś wie gdzie tkwi błąd?
Kod:
int byte ByteArray[250];
int ByteData[30];

const char msg_reguest[] = {0x01, 0x04, 0x00, 0x08, 0x00, 0x02, 0xf0, 0x09};

void setup() {

  Serial.begin(115200);
  Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);

}

void loop() {

delay(200);
int i;
int len=8;

Serial.println("WYSŁANA RAMKA");
for(i = 0 ; i < len ; i++){
      Serial2.write(msg_reguest[i]);
      Serial.print("[");
      Serial.print(i);
      Serial.print("]");
      Serial.print("=");
      Serial.print("Ox");
      Serial.print(String(msg_reguest[i], HEX));     
      Serial.print(" ");
}
len = 0;
Serial.println();
Serial.println();

int a = 0;
while(Serial2.available())
{
ByteArray[a] = Serial2.read();
a++;
}

int b = 0;
String registros;
    Serial.println("ODEBRANA RAMKA");
    for(b = 3 ; b < a-2 ; b++){     
      Serial.print("[");
      Serial.print(b);
      Serial.print("]");
      Serial.print("=");   
      Serial.print("Ox");
      registros =String(ByteArray[b], HEX);  
      Serial.print(registros);
      Serial.print(" ");
      }
       Serial.println();
       Serial.println();

Serial.println(ByteArray[3],DEC);
Serial.println(ByteArray[4],DEC);
Serial.println(ByteArray[5],DEC);
Serial.println(ByteArray[6],DEC);

Serial.println();
Serial.println();

byte hexArray[] = "registros";
  float value;
  memcpy(&value, hexArray, sizeof(hexArray));
  Serial.println(value);

delay(3000);

}
 
Odpowiedź
  


Wiadomości w tym wątku
esp32 ramka modbus rtu hex to float convert - przez macieju1974 - 13-12-2021, 18:43

Skocz do:


Przeglądający: 1 gości