Проблема при работе с com-портом. vs 6.0
От: zipper3  
Дата: 26.02.06 17:44
Оценка:
Здравствуйте! У меня проблема с основами управления com-портом ч-з winapi. Начальная задача передать строчку и сразу прочитать ее. Прочитал, что для этого надо замкнуть 2й и 3й пины на компорте.

Код:
    
    HANDLE hCOM=CreateFile("COM1",GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    DCB  DCB;
    DCB.BaudRate=4799;
    DCB.ByteSize = 8;
    DCB.Parity = 0;
    DCB.StopBits = 0;
    SetCommState(hCOM,&DCB);
    
    COMMTIMEOUTS timeCom;
    GetCommTimeouts(
    hCOM,     // handle to comm device
    &timeCom  // time-out values
    );
  
        timeCom.ReadIntervalTimeout=100;
        timeCom.ReadTotalTimeoutConstant=50;
        timeCom.ReadTotalTimeoutMultiplier=0;
        timeCom.WriteTotalTimeoutMultiplier=0;
        timeCom.WriteTotalTimeoutConstant=0;

    SetCommTimeouts(
        hCOM,     // handle to comm device
        &timeCom  // time-out values
        );


    if (hCOM!=INVALID_HANDLE_VALUE)
    {
        AfxMessageBox("COM1 is open OK!");
        char buffer[30];
    //    buffer=m_wdata;
        //AfxMessageBox(buffer);
        memset(buffer,0,sizeof(buffer));
            strcpy(buffer,"SAVE TO COM1");
        DWORD nb;
        OVERLAPPED ov;
        WriteFile(hCOM,buffer,sizeof(buffer),&nb,&ov);
        CloseHandle(hCOM);
    }
    else AfxMessageBox("Error Open COM1");

Запись, помоему, не происходит. В дебаггере переменная nb =0, так же происходит, если заменить на readFile (массив buffer остаеться тем же, nb=0).

p.s. nb — кол-во записаных/считанных байт.
p.p.s. Всем заранее спасибо!
.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.