Demande d'explication serie

Bonjour,

Je souhaite recevoir des informations de style entier, flottante, chaine de caractère sur la liaison série 1 de la méga depuis un afficheur . J’ai trouvé ce code ci dessous:

#define MYSERIAL1 Serial1
#define BUFFLEN 30
static char cmd_buff[BUFFLEN];
static int  buff_index=0;

void lcd4d_incoming()
{
  while(MYSERIAL1.available()>0)
  {
    cmd_buff[buff_index] = (char)MYSERIAL1.read();
    if(cmd_buff[buff_index] == '\n')
    {
       cmd_buff[buff_index] = 0;
       enquecommand(cmd_buff);
       buff_index = 0;
    } else
       buff_index++;
    if(buff_index >= BUFFLEN)
    {
      buff_index = BUFFLEN-1;
    }
  }  
}

Pouvez-vous m’expliquez ce code? Pourquoi ‘\n’ ? Je ne suis pas un expert!!!

Merci!

En vous remerciant.

vince3011: Pourquoi '\n' ?

C'est un terminateur de chaine. Il sert a indiquer la fin de la chaine transmise.

Quand le programme tombe dessus, il sait qu'il peut arrêter la lecture

Bonjour, en d'autres termes, que la chaine suivante va débuter

Et en affichage il sert aussi à passer à la ligne. Serial.print("\n") = passage à la ligne. C'est l'équivalent de Serial.println("") Dans le même ordre : \t provoque une tabulation

Merci pour vos réponses! ;)

void buff2str(int *buffer,int buffer_count, int *buff_out)

Je ne veux pas trop vous embêter avec mes questions stupides, pouvez-vous m'expliquez pourquoi

  • a quel moment on met des instructions dans les parenthèses?

  • a quoi sert *?

M'expliquez cette définition:

#define SERIAL1_PROTOCOLLN(x) {MYSERIAL1.print(x);MYSERIAL1.write('\n');}

Vous serez des anges!!!

Merci bcp.

vince3011: Merci pour vos réponses! ;)

void buff2str(int *buffer,int buffer_count, int *buff_out)

Je ne veux pas trop vous embêter avec mes questions stupides, pouvez-vous m'expliquez pourquoi

  • a quel moment on met des instructions dans les parenthèses?

  • a quoi sert *?

M'expliquez cette définition:

#define SERIAL1_PROTOCOLLN(x) {MYSERIAL1.print(x);MYSERIAL1.write('\n');}

Vous serez des anges!!!

Merci bcp.

là faut acheter un livre de programmation ou regarder sur le web les bases du langage.

void buff2str(int *buffer,int buffer_count, int *buff_out)

c'est une déclaration de fonction

#define SERIAL1_PROTOCOLLN(x) {MYSERIAL1.print(x);MYSERIAL1.write('\n');}

c'est la définition d'une macro, si vous écrivez SERIAL1_PROTOCOLLN("coucou")ça sera replacé par {MYSERIAL1.print("coucou");MYSERIAL1.write('\n');} avant de compiler

http://cpp.developpez.com/cours/