@ khriss75 : consiglio di inserire almeno un delay di 1 msec :
byte a;
while (Serial.available()) {
a=Serial.read();
delay(1)
}
Magari non è questo il caso, perché state parlando di UN solo carattere, ma ...
... immagina tu ne stia ricevendo più di uno. La velocità di quel loop stretto (while) è sicuramente superiore al tempo che impiegano gli 8 bit del carattere ad essere ricevuti (... a 9600 baud, un carattere impiega circa 1 msec ad arrivare) e quindi rischieresti di uscire dal loop perché la Serial.available() diventerebbe false ... per essere di nuovo true ... un millisecondo dopo la tua uscita ![]()
Guglielmo