Réception d'une chaine de caractère en c

tibo07130 -  
tibo07130 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je conçois un programme pour envoyer et recevoir des chaînes de caractères. Pas de problème pour envoyer une chaine de caractères mais j'ai un souci pour la recevoir. Je reçois seulement un caractère à l'aide de cette fonction :
char recevoir_car()
{
TXEN=0;
CREN=1;
while (RCIF!=1); //et on bascule le PIC en recepteur
return (RCREG);
et voici ma fonction qui pose problème pour recevoir la chaine de car :
const unsigned char* recevoir_ch()
{
int i=0;
do
{
chaine[i] = recevoir_car();
i++;
}
while(recevoir_car() != '\0'); // On boucle tant qu'on n'est pas arrivé à l'\0
i--; // On retire 1 caractère de long pour ne pas compter l'\0
return *chaine;
}
vous voyez un problème quelque part?
merci d'avance.
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,
Ta variable "chaine" est définie où ? Et comment ?
Ce n'est pas : return *chaine; mais return chaine; qu'il faut mettre.

Cdlt,
0
emit-fr Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   8
 
Bonjour,

Y'a du boulot: plusieurs erreurs !

char chaine[TAILLE_MAX];
unsigned short recevoir_ch(void)
{
int i=0;
do
{
chaine[i] = recevoir_car();
i++;
}
while(chaine[i-1] != '\0'); // On boucle tant qu'on n'est pas arrivé à l'\0
i--; // On retire 1 caractère de long pour ne pas compter l'\0
return i;
} 

ou
void main(void)
{
char chaine[TAILLE_MAX];
recevoir_ch(chaine);

}

unsigned short recevoir_ch(char *c)
{
int i=0;
do
{
*c = recevoir_car();
i++;
}
while(*c++ != '\0'); // On boucle tant qu'on n'est pas arrivé à l'\0
i--; // On retire 1 caractère de long pour ne pas compter l'\0
return i;



https://www.emit-fr.com/
0
tibo07130 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
fiddy : j'avais définie chaine comme pointeur... j'ai un peu de mal peut tu corriger mon programme pour qu'on en discute?

emit-fr : je ne comprend pas pourquoi tu retourne i... i est juste un compteur pour moi et ce qui m'interesse c'est plutot ce qu'il y a dans chaine...

cette fonction me permet de lire des trames de caractère en liaison série...
0