Port série et WriteFile !

nanalye Messages postés 7 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 29 avril 2003 - 28 avril 2003 à 16:19
nanalye Messages postés 7 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 29 avril 2003 - 29 avril 2003 à 14:08
Bonjour tout le monde !

Voilà mon pb : je veux envoyer des entiers par le port série avec WriteFile.

Voici le programme que je lance :

//ouverture du port :

m_Com = CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, NULL );

//initialisation du port

SetupComm( m_Com, 1024, 1024 );
GetCommState( m_Com, &dcb );
dcb.BaudRate = BAUD_9600;
dcb.Parity = NOPARITY;
dcb.ByteSize = 8;
dcb.StopBits = ONESTOPBIT;
SetCommState( m_Com, &dcb );

//envoi de données

void envoi(int data)
{
dw=0; // DWORD déclaré en variable globale
WriteFile( m_Com,(void*) &data,sizeof(int), &dw, 0 );
}

Dans mon main j'ouvre, j'initialise et je lance ma fonction envoi(11) par exemple.

J'ai téléchargé un logiciel de dialogue avec port série et qd je regarde ce qu'envoie mon pogramme il me met n'importe quoi du genre 240 240 ou 000 000...

Si qq'un a une idée du pb ou un exemple de programme avec WriteFile qui marche pour les entiers sous VC++ ce serait super !!!

Merci d'avance !

nanalye

1 réponse

nanalye Messages postés 7 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 29 avril 2003
29 avril 2003 à 14:08
Bon en fait g trouvé l'erreur. Ca pourrait intéresser des gens... En fait dans mon initialisation g mis :
dcb.BaudRate = BAUD_9600;
et en fait c'est :
dcb.BaudRate = CBR_9600;
Ct tout !

Bon courage à tous

nanalye
0
Rejoignez-nous