Arduino Mega gestion des port serie !!!

Donc si je comprend bien vos réponse la lecture sur un port série est toujours une fonction bloquante ??

j'ai essaye d'autre façon de faire la lecture et même problème !!!

par example ceci:

void setup() {
    Serial.begin(9600);
    pinMode(13,OUTPUT);
    digitalWrite(13,LOW);
}
 
String serialCommand;
char serialLetter;
 
void loop()
{
     
    serialCommand = "";
 
    // Boucle infinie (que l'on quitte lorsque l'on appuis sur la touche ENTER)
    for (;;) {
         
        // Si la com reçoit quelque chose, on lit le caractère et on le traite
        // Note : sinon, on ne fait rien (donc on reste dans la boucle infinie)
        if ( Serial.available() > 0 ) {
             
            // Lecture
            serialLetter = Serial.read();
 
            // Si c'est la touche ENTER, on quitte la boucle infinie
            if ( serialLetter == '\r' || serialLetter == '\n' ) {
                break;
            }
 
            // Si la boucle n'a pas été quitté, c'est que ce n'est pas la touche ENTER
            // Donc on ajoute le caractère à la string
            serialCommand += serialLetter;
             
        }
 
    }
 
    // Dès que l'on arrive ici, c'est que la touche ENTER a été utilisée
    // Donc on va traiter la chaine reçue
 
    if ( serialCommand == "MDP" ) {
        digitalWrite(13, HIGH);
    }
 
    if( serialCommand == "Reset" ) {
        digitalWrite(13, LOW);
    }
 
    // Fin du traitement,
    // Fin de la fonction loop
    // => c'est reparti pour un tour
 
}

ça sa fonctionne nikel mais si je duplique le code d'une manière a y ajouter le second port cela deviens lent et aléatoire !!! a part la boucle je ne voie pas ce qui bloque le µP.
Sans doute que je ne comprend pas ce que vous me dite part Bloquant !!!