Al momento non posso provare il codice sulla scheda fisica.
Questa porzione di codice quando abilitata funziona:
// stesso lavoro di ba_to_strx()
// ma questo funziona
char *p = str_buff;
for (uint8_t i=0; i<16; i++) {
sprintf(p, "%02x", bas[i]);
p += 2;
}
Serial.println(str_buff);
e stampa correttamente 25f9e794323b453885f5181f1b624d0b
Io non ci vedo errori.
Lo stesso codice, ma messo dentro una funzione, compila senza errori ma da un output errato:
ba_to_strx(str_buff, bas, sizeof(bas));
Serial.println(str_buff);
output errato: 25ffffff323b4538ffff181f1b624d0b
Per testarlo basta:
#if(1)
stampa errata
#if(0)
stampa corretta
Cosa fanno le due funzioni?
ba_to_strx() converte un byte array in c string hex
strxX_to_ba() converte c string hex in byte array
Richiesta:
Ho sbaglio io senza capirlo oppure c'è un bug.
Potete provare lo sketch su arduino uno o altro per verificare se il bug
riguarda wokwi o altro.
Ciao.