Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C][WinApi] RS232 - Zacinający się program

RMB13 18 Lip 2011 21:37 1311 1
  • #1 18 Lip 2011 21:37
    RMB13
    Poziom 10  

    Witam!
    Problem mój polega na tym, że krótki program który napisałem zacina się pod Win XP.
    Zasada działania: Po wciśnięciu na jeden z dwóch przycisków, na port COM1 wysłane mają zostać 2 Bajty - 1 sterujący (dla rozwiązania problemu to na razie 'R';'G';'Y'), oraz 0x0A (znak nowej linii - po otrzymaniu go podłączony pod Com1 układ zapala LED o odpowiednim kolorze - układ sprawny, na Terminalu działa). Gdy uruchomię program i nakliknę odpowiedni przycisk, bajty zostają wysłane, ale program zacina się i nie idzie nic zrobić. Dodam że z Com'em na Winapi jeszcze się nie bawiłem, chociaż kilka lat temu, kilka prostych programów z WinApi skleciłem.

    Kod: c
    Zaloguj się, aby zobaczyć kod



    RMB13

    0 1
  • #2 19 Lip 2011 00:39
    inot
    Poziom 20  

    Zmień komando "WriteFile" w następujący sposób:

    Code:
    OVERLAPPED osWrite;
    
                 osWrite.Offset=0;
                 osWrite.OffsetHigh=0;
                 osWrite.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);

    if(WriteFile(hNumPort,Bufor,2,0,&osWrite)==0)
    ....

    ....
    CloseHandle(osWrite.hEvent);
     

    Port otworzyć w ten sposób:
    Code:

    hNumPort = CreateFile("COM1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);

    0