Quelle est la différence entre Serial.write() et Serial.print()

Bonjour,

J'ai une question bête, mais j'aimerais savoir la différence de

Serial.print() et Serial.write

En fait ce qui m'intéresse surtout de savoir quelle est la différence entre

Serial.println("AT+CGPSSTATUS?");
Serial.print("AT+CGPSSTATUS?");
Serial.write("AT+CGPSSTATUS?");

et

Serial.println("Hello");
Serial.write("Hello");

J'ai lu que Serial.write return en byte, la longeur du string

mais quel sera l'impact sur Serial.write(Serial.read()); si j'utilise Serial.print()

if (Serial.available())
       {
         Serial.write(Serial.read());
       }

Voilà, en résumé, ceci va lancer la commande pour connaitre le status du GPS

Serial.print("AT+CGPSSTATUS?");
Serial.write("AT+CGPSSTATUS?");

mais quelle sera la différence?

Merci

write prend le contenu de l'argument et l'envoie tel quel. print prend le contenu de l'argument et "l'adapte" pour rendre le contenu lisible pour un humain. println se comporte comme print mais il ajoute à la fin de la transmission un CR+LF (retour au début de ligne + saut de ligne)

si tu as une variable de type char, A = 45

si tu fais Serial.write(A); sur ton terminal tu vas voir s'afficher la lettre E. Le code ASCII de la lettre E est 45

si tu fais Serial.print(A); sur ton terminal tu vas voir s'afficher 45. Print aura interprété le nombre et envoyé les caractères 4 et 5.

De manière générale, il faut réserver print aux périphériques qui font de l'affichage pour des personnes ou lorsque tu désires stocker des informations sous la formes de chaînes de caractères (par exemple si tu écris des valeurs dans une carte mémoire que tu veux relire facilement sur ton PC).

Dans le cas de l'envoi d'une chaîne de caractères il n'y a pas de différence entre print et write les deux.