Работа с Com-портом

Тема в разделе "MS Visual C++", создана пользователем mike2007, 16 ноя 2007.

  1. mike2007

    mike2007 Гость

    Здравствуйте!
    У меня такая проблемка, не могу отправить в COM-порт и считать символы с него. Можете дать ссылочку на информацию по работе с COM-портом.
    Вот програмка:
    Код (Text):
    int SendCom(void)
    {
    HANDLE ComHandle;
    COMMCONFIG ComCfg, *lpComCfg=NULL;
    COMSTAT *lpComStat=NULL;
    //COMMTIMEOUTS ComTimeout, *lpComTimeout;
    //DCB ComDcb, *lpComDcb;
    //OVERLAPPED *lpOverlapped;
    DWORD ComError;
    DWORD lpSize;
    DWORD nByteToWr=0, nByteOfWritten=0;


    BOOL err;

    char wBuff[5]={1,2,9,8,7};//, *lpBuff;
    char rBuff[5]={0,0,0,0,0};

    //lpBuff = Buff;

    ComHandle = CreateFile(
    "COM2",
    GENERIC_READ || GENERIC_WRITE,
    0,
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL || FILE_FLAG_OVERLAPPED,
    NULL
    );
    if (ComHandle == INVALID_HANDLE_VALUE)
    {
    return 1;
    }
    lpComCfg = (COMMCONFIG *) malloc(sizeof(COMMCONFIG));

    GetCommConfig(ComHandle,lpComCfg, &lpSize);

    ComCfg = *lpComCfg;

    ComCfg.wVersion = 1;
    ComCfg.dwProviderSubType = PST_RS232;
    ComCfg.dcb.BaudRate = 9600;
    ComCfg.dcb.ByteSize = 8;
    ComCfg.dcb.DCBlength = 28;
    ComCfg.dcb.Parity = 0;
    ComCfg.dcb.StopBits = 0;

    SetCommConfig(ComHandle, &ComCfg, sizeof(COMMCONFIG));

    lpComStat = (COMSTAT *) malloc(sizeof(COMSTAT));
    ClearCommError(ComHandle, &ComError, lpComStat);

    nByteToWr = 3;
    err = WriteFile(ComHandle, &wBuff, nByteToWr, &nByteOfWritten, NULL);
    ErrorR();
    //*********************************************
    // Вот здесь выводится ошибка "Отказано в доступе"
    //*********************************************
    nByteOfWritten = 0;

    ClearCommError(ComHandle, &ComError, lpComStat);

    nByteToWr = 3;
    ReadFile(ComHandle, &rBuff, nByteToWr, &nByteOfWritten, NULL);
    nByteOfWritten = 0;

    CloseHandle(ComHandle);
    return 0;
    }
    Помогите пожалуйста, заранее спасибо.
     
  2. sdriver

    sdriver Гость

    Пользуйся

    Вот второй
     

    Вложения:

  3. gamecreator

    gamecreator Гость

    запись/чтение файла с именем COM*, где * - номер порта
     
Загрузка...

Поделиться этой страницей