Help prog du RS232 en c

matt22 -  
 lyp -
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

2 réponses

  1. lyp
     
    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
  2. Bill_Tcherno Messages postés 64 Statut Membre 30
     
    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