Bonjour à tous!


J'ai un petit soucis avec le port série RS232. En fait, j'arrive parfaitement à écrire un char sur le port (8bit), mais pas un buffer entier (je devrais écrire 28 caractère d'affiliée en principe)! Le programme me signale que tout va bien, mais visiblement mon circuit électronique ne suit pas! Un autre truc étrange est que je suis obligé d'insérer un délai de 20ms entre chaque envoi de caractère. Ce délai est beaucoup trop élevé et lorsque je le diminue, plus rien ne va... Voici le code de la fonction qui envoi:

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
BOOL RS232::EnvoyerBuffer (char buffer[], int nBytesWritten, RS232 COM){
	int i,k;
	char buf [2];
	k=1;
	/*if(COM.ouverture==0){
		printf("Pas de port ouvert\n");
		return 1;
	}*/
	//printf("Envoi des donnees...\r\n");
	for(i=0;i<strlen(buffer);i++){
		buf [0]=buffer[i];
		buf [1]='\0';
		if(COM.WriteCOM(buf,strlen(buf),&nBytesWritten)){
			//printf("%d octet(s) envoye(s).\r\n", nBytesWritten);
			Sleep(20);		
                }
		else{
			printf("Erreur lors de l'envoi.\r\n");
			return NULL;}
	}
	return TRUE;
}
Vous avez une idée?

Merci de votre aide