Разыменование float указателя на array c данными в формате IEEE-754

Добрые люди, подскажите, пожалуйста!
Есть 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.

Вы путаетесь с порядком слов !

uint16_t au16data[] = { 0x43ff, 0xa666};
float p = 511.3;

0100: FF 43 66 A6 66 A6 FF 43

По адресу 100 лежит массив
По адресу 104 лежит 511.3

извините, не понял. я явно float в память не кладу же, есть указатель, который я пытаюсь настроить на массив:

float* p_float = (float*)(au16data);

нет?

Разыменование отрабатывает правильно. С данными беда !!!

uint16_t au16data[] = { 0xa666, 0x43ff}; // сработает

Понятно! Спасибо большое, @Komandir !!!