yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
26
15 févr. 2007 à 17:06
Salut, il te faut programmer avec ce genre d'outils Win32 (en bleu) :
// CREATION
int bufferINT[4096] = {0}; // Buf lecture/ecriture
int countArrayINT = 0; // Compteur lecture/ecriture
DWORD dwReallyWriteOrRead; // Nombre réel de lecture/ecriture
TCHAR name[] = "COM1";
HANDLE port;
COMMTIMEOUTS timeouts;
DCB dcb;
port = CreateFile(name, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
PurgeComm(port, PURGE_TXABORT | PURGE_RXABORT |
PURGE_TXCLEAR | PURGE_RXCLEAR);
SetupComm(port,4096, 4096);
ZeroMemory(&timeouts, sizeof(COMMTIMEOUTS));
timeouts.ReadIntervalTimeout= 0xFFFFFFFF;
SetCommTimeouts(port,&timeouts);
ZeroMemory(&dcb, sizeof(dcb));
dcb.DCBlength = sizeof(dcb);
GetCommState(port, &dcb);
BuildCommDCB("9600,n,8,1", &dcb);
// OU affecter 1 par 1 et SetCommState(port, &dcb)
// UTILISATION WRITE
WriteFile(port,(void*)bufferINT, countArrayINT, &dwReallyWriteOrRead, NULL);
// UTILISATION READ
ReadFile(port,(void*)bufferINT, countArrayINT, &dwReallyWriteOrRead, NULL);
// FERMETURE
CloseHandle(port);
Attention pour l'assyncrone il faut utiliser la structure :
OVERLAPPED etCreateEvent()