Moderador:
Por favor, lee las Normas del foro y edita tu código usando etiquetas.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>
Tendría que ver qué se le está mandando exactamente, seguramente está mandando un "A123"+Intro.
Lees el primer caracter, una 'A', lees dentro del IF el parseint y te devuelve 123. Imprimes los 3 valores.
Pero aún queda en el buffer un "Intro" que lee y vuelve a imprimir sin entrar en ningun "IF" dado que es un caracter 13.
Inlcluye esta línea para averiguarlo: if (c==0x0D) { Serial.println("CR !!!"); }
Obviamente es eso, se ve en la captura de pantalla que la consola envía un CR al final, pero esperábamos que el PO cumpla con lo que le pidió el moderador para darle una respuesta.
Saludos