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
Autoscroll
Clear output
9600 baud
Newline
- The result on Serial Monitor:
COM6
Octet recu: H
Octet recu: E
Octet recu: L
Octet recu: L
Octet recu: O
Octet recu:
Autoscroll
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);
}
}
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.