Добрые люди, подскажите, пожалуйста!
Есть array uint16_t данных. В него кладутся данные (4 байта) в формате IEEE-754 - floting point. Я пытаюсь эти данные прочитать нехитрым способом, настроив float указатель на начало массива и проведя разыменование. Но вместо числа 511.3 получаю -0.0. Что я упускаю из вида? Где ошибка?
PS: если я уйду от uint16_t в пользу, скажем, unsigned long, то код заработает. но uint16_t  array - “must have” Может array в памяти как-то особенно размещается?
0x43ffa666 соответствует float 511.3
void setup() {
  Serial.begin(9600);  
}
void loop() {
  uint16_t au16data[] = { 0x43ff, 0xa666};
  float* p_float = (float*)(au16data);
  Serial.println(*p_float) ;
  
  Serial.flush();
  exit(1000);
}
в аутпуте соответственно:
-0.00
Arduino Nano.