problème réception port série.
Salut à tous,
Je suis en train de coder une appli en c pour récupérer des données sur un port série.
voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| int Read_Serie2(int SerieID)
{
char entete[10];
int nbbytes = 0;
int i;
ReadFile(SerieID, &(entete[0]), 1, (LPDWORD)&nbbytes, NULL);
if(entete[0]==0x7E)
{
for(i=1; i<=2;i++)
{
ReadFile(SerieID, &(entete[i]), 1, (LPDWORD)&nbbytes, NULL);
}
for(i=3; i<=entete[2];i++)
{
ReadFile(SerieID, &(entete[i]), 1, (LPDWORD)&nbbytes, NULL);
}
printf("l'entete = 0x%x.\n",entete[0]);
printf("longeur trame = 0x%.2x.\n",entete[1]);
printf("longeur trame = 0x%.2x.\n",entete[2]);
printf("Les donnees en hexa sont : ");
for (i = 3; i < entete[2]+3; i++)
{
printf("0x%.2x ", entete[i]);
}
printf("\n");
}
return 0;
} |
Mon programme marche bien mais je reçois des données en trop. J'ai donc regardé avec un sniffer de port série et j'ai à l'entré de mon port série ça :
7E 00 14 90 00 13 A2 00 40 62 A9 25 7F 20 01 54 78 44 61 74 61 30 41 F3
Ma trame attendu.
mais après réception par mon programme en c j'ai ça :
7e 00 14 ffffff90 00 13 ffffffa2 00 40 62 ffffffa9 25 7f 20 1 54 78 44 61 74 61 30 41 fffffff3
Savez vous pourquoi? Pourquoi je reçois des ffffff en plus?
Merci