Interrupcion UART y bucle while

serialEvent no es una interrupción. esta función se llama cuando el bucle finaliza.
Así es como se ve el programa principal (generado por el IDE) (simplificado)

int main(void) {
	setup();  
	for (;;) {
		loop();
		if (Serial.available()) serialEvent();
	}
	return 0;
}

entonces la función main() llama a setup() una vez y luego hay un bucle infinito que llama a la función loop(), y cuando el loop() finaliza, verifica si hay un byte pendiente para leer y llama a la función serialEvent() .

➜ si no sale de la función loop(), nunca se llamará a serialEvent().

no use SerialEvent(), solo maneje el puerto serial cuando lo necesite.

1 Like