Aide à la fonction OpenCom

Signaler
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour,

Je voulais comprendre quelque chose dans la fonction OpenCom (langage C) ci dessous. J'envoie des informations du Pc au microcontroleur par la liaison série RS232.




/******************************************************************************
OpenCOM : ouverture et configuration du port COM.
entrée : nId : Id du port COM à ouvrir.
retour : vrai si l'opération a réussi, faux sinon.
******************************************************************************/
BOOL OpenCOM(int nId)
{
/* variables locales */
char szCOM[16];

/* construction du nom du port, tentative d'ouverture */
sprintf(szCOM, "COM%d", nId);
g_hCOM = CreateFile(szCOM, GENERIC_READ|GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, NULL);

//Ici tu crée un fichier qui contient uniquement "COM%d"??,
if(g_hCOM == INVALID_HANDLE_VALUE)
{
printf("Erreur lors de l'ouverture du port COM%d", nId);
return FALSE;
}

/* affectation taille des tampons d'émission et de réception */
SetupComm(g_hCOM, RX_SIZE, TX_SIZE);

/* configuration du port COM */
if(!SetCommTimeouts(g_hCOM, &g_cto) || !SetCommState(g_hCOM, &g_dcb))
{ // à quoi sert cette fonction?
printf("Erreur lors de la configuration du port COM%d", nId);
CloseHandle(g_hCOM);
return FALSE;
}

/* on vide les tampons d'émission et de réception, mise à 1 DTR */
PurgeComm(g_hCOM, PURGE_TXCLEAR|PURGE_RXCLEAR|PURGE_TXABORT|PURGE_RXABORT);

EscapeCommFunction(g_hCOM, SETDTR);
return TRUE;
}







a Quoi set la fonction SetCommTimeouts(g_hCOM, &g_cto) || !SetCommState(g_hCOM, &g_dcb)) et pourquoi on fait PurgeComm a la fin .

Merci

1 réponse

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Regarde ici comment on ouvre et communique en port com sous win:
http://www.cppfrance.com/code.aspx?ID=22441
http://www.cppfrance.com/code.aspx?ID=18704

ciao...
BruNews, MVP VC++