jeudi 8 juin 2017

[Arduino] Communication série

Le principe est simple, faire l'envoie d'une chaîne de caractère depuis un terminal vers notre carte Arduino.
Pour ce faire, deux instructions seront nécessaires :

  • available() : permet de savoir si des données sont disponibles sur le bus, renvoie "-1" si vide
  • read() : récupère le premier caractère disponible
On comprend aisément que la lecture des données se fera suivant une "FIFO" (First In First Out). Il faudra donc réaliser plusieurs lecture avant d'avoir notre information au complet.

Exemple de code :

//Déclaration variables
char char_lu = 0;     //contiendra le caractère lu
int nbre_char = 0;    //contient le nombre de caractère dans le buffer
void setup()
{
    Serial.begin(115200);     //initialise la communication série à 155200bauds
}

void loop()
{
    nbre_char = Serial.available();     //on relit le nombre de caractères disponbiles
 
    while(cardispo > 0)     //on boucle autant de fois que nécessaire pour tout lire
    {
        char_lu = Serial.read();     //on lit le caractère présent
        Serial.print(char_lu );     //le caractère est renvoyé sur le port série
        nbre_char = Serial.available();     //on relit le nombre de caractères disponbiles
    }
    //fin du programme
}

Aucun commentaire:

Enregistrer un commentaire