Fondamenti · Lezione 4 di 11 · circa 15 min
GPIO: pin in ingresso e in uscita
Accendi un LED, leggi un pulsante
GPIO significa ingresso/uscita di uso generale. Un pin configurato come uscita mette 3,3 V o 0 V sul filo. Un pin configurato come ingresso legge la tensione che arriva dall’esterno.
La vera app, nel tuo browser: questa lezione con la sua anteprima 3D su una scheda ESP32 DevKit (30 pins) simulata. Niente da installare, niente da collegare.
Con una resistenza di pull-up il pin legge 1 quando nessuno tocca il pulsante. Premendolo il pin va a massa, quindi premuto legge 0. All’inizio sembra al contrario, ma è il modo standard di collegare un pulsante.
Tre passi per qualsiasi pin
- Accendi il clock della porta. Le periferiche partono spente per risparmiare energia; dimenticarlo è l’errore più comune dei principianti.
- Imposta la modalità del pin: ingresso, uscita, funzione alternativa (UART, I2C e altre) o analogico.
- Scrivi il registro di uscita, oppure leggi il registro di ingresso.
// NUCLEO-F401RE: green LED on PA5, blue button on PC13
RCC->AHB1ENR |= (1 << 0) | (1 << 2); // 1. clock on for ports A and C
GPIOA->MODER &= ~(3 << (5 * 2)); // 2. PA5: clear its two mode bits
GPIOA->MODER |= (1 << (5 * 2)); // 01 = output
while (1) { // 3. read the button, drive the LED
if ((GPIOC->IDR & (1 << 13)) == 0) GPIOA->ODR |= (1 << 5);
else GPIOA->ODR &= ~(1 << 5);
}
In BoardPilot, Testa l’hardware legge e comanda i pin reali, e la scheda 3D mostra ogni pin che usi.
Domande da colloquio
- Che cos’è una resistenza di pull-up e perché serve a un pulsante?
- Che cos’è il rimbalzo dei contatti e come si gestisce?
- Perché bisogna attivare il clock di una periferica prima di usarla?
Qui non ci sono le risposte, apposta: prova prima a rispondere ad alta voce. Nell’app BoardPilot l’allenatore per i colloqui legge la tua risposta e ti dice cosa era giusto, cosa manca e cosa chiederebbe dopo un intervistatore senior (usa il fornitore di IA che scegli nell’app). Domande da colloquio sui sistemi embedded →
Parole chiave
GPIO Resistenza di pull-up Ingresso flottante Debounce (antirimbalzo) Clock della periferica Piedinatura (pinout) STM32
Nell’app le lezioni prendono vita
Nell’app le lezioni hanno demo interattive ed esercitazioni pratiche verificate sulla tua scheda. Queste pagine sono la versione da leggere: le demo sono descritte a parole e le esercitazioni richiedono l’app.