Help prog du RS232 en c

Fermé
matt22 - 27 mai 2003 à 13:33
 lyp - 27 mai 2003 à 19:31
bonjour
j'ai un gros problème, je doit réussir à creer un prog pour recevoir des données par le port série en c
malheureusement je ne comprend pas grand chose au niveau du port série...

si quelqu'un à un prograamme qui pourrai me donner de l'inspiration....
Merci d'avance
A voir également:

2 réponses

Salut

en supposant que tu es sous windows

je n'utilise que rarement le c mais pour la rs232 je le traite comme un fichier

hCom = CreateFile( "COM1",
GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security attributes
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);

ensuite pour la config
pour aller la lire
fSuccess = GetCommState(hCom, &dcb);

après avoir modifier dcb (structure pour parite vitesse etc....
fSuccess = SetCommState( hCom, &dcb ) ;

SetupComm(
hCom, // handle to communications device
4096, // size of input buffer
4096 // size of output buffer
);


après pour l'écriture


WriteFile(
hCom, // handle to file to write to
&buffer, // pointer to data to write to file
OfBytes, // number of bytes to write
&lpNumberOfBytesWritten, // pointer to number of bytes written
NULL // pointer to structure for overlapped I/O
);

là ou ça se complique c'est la lecture

pour ne pas avoir de souci je fais un thread mais ce ne doit pas etre obligatoire

hth = CreateThread(
(LPSECURITY_ATTRIBUTES)NULL, // pointer to security attributes
0, // initial thread stack size
(LPTHREAD_START_ROUTINE)proc, // pointer to thread function
(LPVOID) NULL, // argument for new thread
0L, // creation flags
(LPDWORD) &lpThreadId // pointer to receive thread ID
);


et là ma fonction lecture

//thread sur la RS232
DWORD WINAPI proc(void)
{
a savoir qu'il exite des evenements a parametrer pour les utiliser
fReadStat = ReadFile( hCom, &tata,1, &dwLength, NULL) ;

}


En espérant t'avoir aidé

http://j.lypstenger.free.fr

@+ JM
1
Bill_Tcherno Messages postés 64 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 28 mai 2003 30
27 mai 2003 à 13:40
essaye de faire des recherches sur le net pour les fonction suivantes ca pourra t'aider :

outport, outportb
inport,inportb

int86( ) /* methode des interruptions */

Bonne chance ! (t'en aura besoin)
0