Utilisation de la bibliothèque Serial

piif:
Heu .. pas d'accord : c'est un "while", donc ça effectue des read tant qu'il reste des trucs à lire PUIS ça les affiche
Donc, s'il y a plusieurs caractères dansle buffer, ça doit tous les dépiler en bloc avant de passer à la suite

A moins que l'entrée série ne soit pas bufferisée, auquel cas, le tampon à le temps de devenir vide avant l'arrivée du caractère suivant.
Mais sur une console série "de base", les caractères sont envoyés en bloc après appui sur "entrée"
Tu utilises quoi pour tester ? la console série de l'IDE Arduino ?

Par contre, c'est sur que si tu fais "a" "entrée" "b" entrée" ... ça explique tout :

  • le buffer a le temps de se vider entre "a" et "b"
  • les retours à la ligne sont pris comme des caractères à afficher, et c'est pourquoi tu passes à la ligne tout le temps

Il faut bien réaliser un truc, la liaison série c'est une tortue.
A 115200 bauds, au mieux (c'est à dire si rien ne vient interférer avec le programme qui envoie les données) il arrive un caractère toutes les 100µs. En 100µs un microcontrolleur qui tourne à 16MHz (soit environ 63ns par instruction) a le temps de dérouler quelques instructions quand même.
Entre l'arrivée de 2 caractères tu as le temps de vider le buffer de réception.