Domande frequenti su ESP32

Errori di codice ESP32: conversioni e compilazione

// errori di codice · faq

Categoria: ESP32 · Errori di codice · Aggiornato ad agosto 2026

Errori di conversione, messaggi di panic e sketch che compilano ma mentono: i testi di errore ESP32 sono sintetici, ma ogni messaggio indica una soluzione precisa. Cosa significano gli errori comuni e cosa cambiare per primo.

Non riesco a convertire bytearray in int su ESP32?

In MicroPython, int.from_bytes(bytes, ‘little’) è la funzione che cerchi — un bytearray è un iterabile di byte, non un numero. In C, la stessa forma di errore significa che stai assegnando un array uint8_t a un int; copia invece il valore. Cerca ‘can’t convert bytearray to int esp32’ e metà dei thread sono parsing UART in MicroPython, l’altra metà lettura di struct in C. Incolla lo sketch che fallisce nel simulator MCP e ti esegue l’errore.

Cosa significa “Guru Meditation Error”?

È l’intestazione del panic — il chip ha incontrato un’eccezione e ha stampato un backtrace prima di resettarsi. Il testo dopo, tipo ‘core 1 panic’ più un indirizzo, ti dice dove. Le righe del backtrace sono le funzioni che stavano girando; leggile dal basso, perché il panic scatta nell’ultima funzione chiamata.

Come decodifico un backtrace?

Incolla gli indirizzi in addr2line, oppure lascia fare allo strumento — idf.py monitor decodifica automaticamente, e PlatformIO fa lo stesso. Una riga risolta come 0x400d1234: loop() at sketch.ino:42 nomina il punto esatto. Nell’Arduino IDE decodifichi a mano.

Perché il mio ESP32 si riavvia in loop?

Leggi l’ultimo output seriale — il chip stampa perché è morto, ogni volta. Un loop di riavvio è un panic, un brownout o un reset del watchdog, e il messaggio dice quale. Il brownout vuole un’alimentazione migliore; il watchdog vuole un task che ceda il controllo. La FAQ sul debug divide i tre casi per sintomo.

Cos’è “exit status 1”?

È il wrapper generico di fallimento del build di Arduino — l’errore vero sta qualche riga sopra, di solito la prima riga ‘error:’. Correggi il primo errore e la cascata di solito si scioglie. ‘exit status 1’ da solo non è mai il problema; è il riepilogo. Se l’errore punta a un header che non hai mai toccato, aggiorna la libreria.

Perché il mio intero è sempre zero dopo la lettura di un sensore?

Tre cause classiche: divisione tra interi (5/2 è 2 in C), lettura dell’ADC prima che si assesti, e testo seriale che arriva come ’42n’ che atoi() legge male. Stampa prima il valore grezzo — risponde in dieci secondi quale delle tre è. Il mese scorso ci ho bruciato un’ora con un DHT22.

Perché toInt() restituisce 0 su input valido?

toInt() fallisce in silenzio — spazzatura dentro, zero fuori, nessun errore. Controlla la stringa con isDigit() o fai prima il trim; un newline in coda la rompe più spesso di quanto pensi. Lo stesso vale per atoi() in C: valida la stringa prima di fidarti del numero.

Cos’è uno stack overflow su ESP32?

È il canary — il chip rileva la corruzione dello stack e va in panic con ‘stack canary’ nella trace. La ricorsione profonda e i grandi array locali sono la fonte abituale; sposta i buffer in static o heap, e alza la dimensione dello stack in xTaskCreate. La FAQ sui segreti interni mappa il layout di memoria che spiega perché.

Errore di compilazione vs errore di linker — qual è la differenza?

Gli errori di compilazione vivono dentro un file: sintassi, tipi, nomi non dichiarati. Gli errori di linker sono pezzi mancanti: ‘undefined reference to’ significa che la funzione non esiste da nessuna parte o che la libreria non è linkata. La prima parola della riga di errore ti dice la fase, e la fase ti dice dove guardare.

Perché l’errore punta a una riga che sembra a posto?

I compilatori riportano dove si sono accorti, non dove è iniziato il problema — di solito una graffa o un punto e virgola mancante diverse righe sopra. Risali all’indietro dalla riga segnata, e attiva l’output verbose dell’IDE per vedere la catena completa.

I progetti di questo argomento girano direttamente nel simulatore gratuito di sensbench: circuito pre-cablato, firmware incluso, senza account né installazione.

Leave a Reply

Your email address will not be published. Required fields are marked *