• 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
#6
Oddalasz się od celu, jak zapiszesz string "47" w tablicy to nie będzie tam siedział bajt 0x47, tylko dwa bajty, jeden dla 4 i drugi dla 7 wg tablicy ASCII, analogicznie 47f972f6 to bajt dla każdego znaku, czyli 64bity a nie spodziewana wartość 4 bajtowa (32bity) dla int32 lub float.
Możesz użyć zwykłego kalkulatora z WIN w trybie programisty, przepisać te bajty (jeśli odbierasz to jako literki i zapisujesz do tablicy char to drukujesz 4 hexy z tablicy jako hexy) i zamienić na postać dziesiętną by przekonać się oczętami, czy jest to zapis zmiennej całkowitej czy float. Float ma inną konstrukcję, część bitów odpowiada za mantysę, reszta za exponent, można tak wyrażać olbrzymie liczby, ale tylko w przybliżeniu. Int32 przedstawia dokładną i jednoznaczną wartość.
Jak w twoich działaniach napotykasz na błędy, traktując zapis 4 bajtów jak float to pewnie nie jest to float.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: esp32 ramka modbus rtu hex to float convert - przez kaczakat - 18-12-2021, 19:58

Skocz do:


Przeglądający: 1 gości