Communication Serial

Bonjour,
Je souhaite faire communiquer un Nano avec un mega en bidirectionnel avec une liaison série. Je souhaite faire transiter des message texte de type String: "510023" ou littéral "c'est bon". Je sais que vous allez me dire que la classe String est très lourde de traitement mais hélas, j'ai déjà développé le reste et je ne souhaite pas tout refondre. La liaison est valide avec pour le nano un port virtuel en RX2,TX3 et le mega sur le Serial1.
J'arrive à envoyer des String sans problème, mais dés que je souhaite le remplacer par un objet String, un message d'erreur arrive: 'no matching function for call to 'SoftwareSerial::write(String&)' '

Pour la communication, j'ai 2 fonctions:

void Envoie() //-- Toutes les 2 secondes envoi d'un message
{
  Serial1.write(envoyer);
  Serial.println("Envoie...");
}
void Recoie()
{
  l = Serial1.available();     //nb d'octé à recevoir
  while (Serial1.available())
  { delay(100);
    char c = Serial1.read();     // receive un char
    m = Serial1.available();
    m = l - m - 1;
    buffer[m] = c;
  }

  buffer[l] = '\0';
 return buffer;
}

Je me doute que la solution est toute bête, mais à force de chercher je me fit des nœuds au cerveau.
Merci pour votre aide!

Bonjour,

Serial.write() permet d'envoyer un caractère, un tableau de caractère ou une chaine au format C.
Si tu veux envoyer un String, il faut utiliser Serial.print().

Comme c'est écrit dans la doc, il faut remplacer "write()" par "print()";

NOTA : grillé, cramé, calciné, ... par kamill :wink:

Cordialement.

Pïerre

Merci!
C'est ok, le message part enfin! Je me doutais bien que c’était trop simple. J’étais cuit, mais la je suis calciné! :smiley:
Vu les températures, ça réchauffe bien quand même.

Merci kamill et Pierre! :wink: