Bonjour
Envoyé par
lcoulon
1)
1 2 3 4 5 6 7
|
char reception;
ReadStringUART((BYTE *)reception, sizeof(reception));
if (strcmp(reception, (char *)"*Hello") == 0)
{
OUT1 = 1;
} |
char et pointeur sur char sont deux choses différentes.
ReadStringUART((BYTE *)&reception, sizeof(reception));
Maintenant, en ce qui concerne la comparaison de 'reception' avec "*Hello", attention, reception est un caractère seul, "*Hello" une chaine de caractère terminée par \0..., or strcmp ne travaille qu'avec des chaines terminées par \0.
À la limite, tu peux écrire :
1 2 3 4
| if (strncmp(&reception, "*Hello", sizeof reception) == 0)
{
OUT1 = 1;
} |
Envoyé par
lcoulon
2)
Quand 1) fonctionnera je voudrai faire cette vairante :
En fonction de l'entete que comportera le mot reçu je voudrais effectuer telle ou telle tache :
exemple :
si le mot recu à pour entete '*' alors je voudrai que OUT1 passe à '1'
si le mot recu à pour entete '#' alors je voudrai que OUT2 passe à '1'
si le mot recu à pour entete '$' alors je voudrai que OUT3 passe à '1'
1 2 3 4 5 6 7 8 9 10 11 12
| char premier_char_du_message;
switch(premier_char_du_message) {
case '*':
OUT1 = '1';
break;
case '#':
OUT2 = '1';
break;
case '$':
OUT3 = '1';
break;
} |
EDIT :
Cela dit, on ne sait pas à quoi correspond la fonction ReadStringUART... un peu plus d'info dessus permettrait peut-être de t'aider plus efficacement.
Partager