const int rtsPin = 16; const int ctsPin = 17; #include SoftwareSerial mySerial(5, 6); // uart soft avec les broches RX,TX // http://arduino.cc/en/Reference/softwareSerial //////////////////////////////////////////// void setup() { pinMode(rtsPin, OUTPUT); pinMode(ctsPin, INPUT); mySerial.begin(1200); // set the data rate for the SoftwareSerial port mySerial.println("Hello\r\n"); digitalWrite(rtsPin, 0);//autorise envoi depuis le PC } //////////////////////////////////////////// void loop() { int i,j; if (mySerial.available()!=0) //si il y a au moins un caractère à recevoir { i=mySerial.read(); // lit le caractère reçu digitalWrite(rtsPin, 1); // interdit l'envoi depuis le pc le temps que l'on traite le caractère reçu delay(1000); // attend une seconde, pour simuler un traitement long while (mySerial.available()!=0) j=mySerial.read(); //vidage de la fifo de réception de l'uart soft, pour simuler l'absence de fifo mySerial.print("J'ai eu besoin d'une seconde pour traiter le caractère "); mySerial.write(i); mySerial.println("\r\n"); digitalWrite(rtsPin, 0); //re autorise l'envoi depuis le pc } }