самое главное, что предыдущая конструкция прекрасно отработает на ESP32 к примеру )))
Тут проявилась восточная мудрость, что большого слона надо есть по частям
byte addr[] = {01, 80, 189, 65, 06, 90, 37, 00}; // буфер приема, HEX числа 4308304 равен 41 BD 50
uint32_t sn = 0;
void setup() {
Serial.begin(115200);
delay(3000);
Serial.println("Serial is ON");
for (int i = 3; i >= 1; i--) {
sn = sn + addr[i];
if (i > 1) sn = sn << 8;
}
Serial.print("Номер - ");
Serial.println(sn);
Serial.print("Номер HEX - ");
Serial.println(sn, HEX);
sn = 0;
#if ( defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) || \
defined(ARDUINO_GENERIC_RP2040) || defined(ESP32) || defined(ESP8266))
sn = (addr[3] << 16) | (addr[2] << 8) | addr[1];
#else
sn = ((sn | addr[3]) << 8 | addr[2]) << 8 | addr[1];
#endif
Serial.print("Номер - ");
Serial.println(sn);
Serial.print("Номер HEX - ");
Serial.println(sn, HEX);
}
void loop() {
}
А вот возник ещё вопрос, у самого считывателя есть команды которые он принимает, такие как 0х33 для получения адреса карты. А вот какие ещё есть? Где бы поискать. Как только не спрашивал гугл и ничего. Наверняка есть какая то команда о том что ключ валидный и надо как то особо по пикать спикером и по моргать диодом.