Aide à la fonction OpenCom

cs_sondos01 Messages postés 22 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 14 décembre 2012 - 11 juil. 2007 à 13:37
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 11 juil. 2007 à 21:57
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 juil. 2007 à 21:57
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++
0
Rejoignez-nous