Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемы приеме / передаче через СОМ порт

12K
10 июня 2012 года
whmario
33 / / 23.08.2007
Здравствуйте!!!
При передаче / приеме данных через COM порт, возникла такая проблема:
передаю например байт - 0xff, а при его приеме получаю - 0x7f, то есть старший бит куда то пропал, подскажите пожалуйста в чем ошибка и как исправить.
Вот код:

Код:
DWORD fb;
    char rx, wx;
   
    wx = 0xff;
    if (!WriteFile(COM, &wx, 1, &fb, NULL) || (fb != 1))
    {
        printf("WriteFile1() failed\n");
        CloseHandle(COM);
        COM = 0;
        return -1;
    }
   
    if (!ReadFile(COM, &rx, 1, &fb, NULL))
    {
        printf("ReadFile() failed\n");
        CloseHandle(COM);
        COM = 0;
        return -1;
    }
    else if (fb != 1)
    {
        printf("Timeout\n");
        CloseHandle(COM);
        COM = 0;
        return -1;
    }
Настройка порта:

Код:
DCB dcb;
    memset(&dcb, 0, sizeof(DCB));
    dcb.DCBlength = sizeof(DCB);
    GetCommState(COM, &dcb);
    dcb.BaudRate  = 19200;
    dcb.ByteSize  = 8;
    dcb.fBinary   = TRUE;
    dcb.fParity   = FALSE;
    dcb.Parity    = NOPARITY;
    dcb.StopBits  = 1;
    SetCommState(COM, &dcb);
  • Можно откомпилированный бинарник поюзать? от CassandraDied, 10 июня 2012 года
  • уточняю, я замкнул на своем COM1 RxD и TxD может в этом причина от whmario, 10 июня 2012 года
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог