Serial.available()

Description

Donne le nombre d'octets (caractères) disponible pour lecture dans la file d'attente (buffer) du port série.

Syntaxe

Serial.available();

Paramètres

  • Aucun

Valeurs Renvoyées

  • Le nombre d'octet disponible pour lecture dans la file d'attente (buffer) du port série, ou 0 si aucun caractère n'est disponible. Si une donnée est arrivée, Serial.available() sera supérieur à 0. La file d'attente du buffer peut recevoir jusqu'à 128 octets.

Exemple

Exemple 1

int incomingByte = 0; // variable pour lecture de l'octet entrant void setup() { Serial.begin(9600); // ouvre le port série et fixe le débit à 9600 bauds } void loop() { // envoie une donnée sur le port série seulement quand reçoit une donnée if (Serial.available() > 0) { // si données disponibles sur le port série // lit l'octet entrant incomingByte = Serial.read(); // renvoie l'octet reçu Serial.print("Octet recu: "); Serial.println((char)incomingByte, DEC); } }
  • Type "HELLO" on Serial Monitor and click Send button:
  • COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  • The result on Serial Monitor:
  • COM6
    Send
    Octet recu: H Octet recu: E Octet recu: L Octet recu: L Octet recu: O Octet recu:
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

Exemple 2

const int BUFFER_SIZE = 5; char buf[BUFFER_SIZE]; // application buffer void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { // check if data is available int rxlen = Serial.available(); // number of bytes available in Serial buffer if (rxlen > 0) { int rlen; // number of bytes to read if (rxlen > BUFFER_SIZE) // check if the data exceeds the buffer size rlen = BUFFER_SIZE; // if yes, read BUFFER_SIZE bytes. The remaining will be read in the next time else rlen = rxlen; // read the incoming bytes: rlen = Serial.readBytes(buf, rlen); // TODO: PROCESS THE INCOMING DATA HERE } }

Arduino Mega example

void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() { // lit du port 0, envoie du port 1 if (Serial.available()) { int inByte = Serial.read(); Serial1.print(inByte, BYTE); } // lit du port 1, envoie du port 0 if (Serial1.available()) { int inByte = Serial1.read(); Serial.print(inByte, BYTE); } }

※ Remarque:

Serial functions are not only used for the communication between an Arduino board and Serial Monitor of Arduino IDE but also used for the communication between:

  • An Arduino board and other Arduino board
  • An Arduino board and other sensors/devices
  • An Arduino board and computer (any Serial software on computer)

Voir Également

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES

  • We are AVAILABLE for HIRE. See how to hire us to build your project
  • Any suggestion, correction, and translation? please email us at ArduinoGetStarted@gmail.com, We appreciate it
  • We mainly keep improving the references in English. See English version of this page for the latest update.