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 : Sélectionner tout - Visualiser dans une fenêtre à part
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