Bonjour les copains,
Travaillant sur les méthodes de la bibliothèque Serial, je me heurte à deux interrogations.
Voici mon petit programme d'essai :
/* Programme pour expérimenter Serial.available() */
void setup() {
Serial.begin(115200); }
void loop() {
if (Serial.available() > 0) {
Serial.println(Serial.available());
Serial.flush();};
}
Dès que je frappe des caractères dans la fenêtre du terminal d'Arduino et que je valide, immédiatement le nombre de ces derniers est affiché dans la fenêtre de visualisation. Normal.
Mais ensuite il y a affichage en boucle de cette taille, alors qu'avec Serial.flush() je suis supposé avoir vidé le tampon du FIFO de l'UART du µP. Pourquoi ? Je m'attendais à ce que suite à Serial.flush() la taille du tampon soit zéro.
Deuxième expérience :
Je saisis dans la fenêtre du terminal série un nombre très grand de caractères pour en saturer le FIFO.
Comme dans la documentation on signale que le tampon fait 128 octets, je m'attends à cette valeur.
Et bien Serial.println(Serial.available()); affiche la valeur 63 ???
Vous avez une idée SVP pour justifier techniquement ces constats ?