Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Настройка Com-порта, SetCommState отказывается пахать 
:(
    Опции темы
NiТR0
  Дата 15.9.2005, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 28.6.2005

Репутация: нет
Всего: нет



Ребята, проблема. Помогите, кто может.
Я вручную заполняю структуру DCB для настройки COM-порта, а SetCommState не выполняется и FormatMessage говорит что "Неверная ф-ия".
Синхронный режим, хэндл беру нормально, грешу на структуру DCB, но что в ней может быть не так? Спасайте, народ. smile
Код

BOOL WorkComm(int NumCommPort)
{
HANDLE HandleCommPortPrinter;
char strNumCommPort[5] = "";
DCB dcb;

ZeroMemory(&dcb, sizeof(DCB));
dcb.DCBlength = sizeof(DCB);
dcb.BaudRate = CBR_57600;
dcb.fBinary = true;
dcb.ByteSize = 8;
dcb.StopBits = ONESTOPBIT;
dcb.Parity = NOPARITY;
// Если XoffChar и XonChar равны, то SetCommState выдаёт ошибку:
// The SetCommState function fails if the XonChar member of the DCB structure is equal to the XoffChar member.
// Поэтому делаю так:
dcb.XoffChar = 0;
dcb.XonChar = 1;

sprintf(strNumCommPort, "COM%i", NumCommPort);
HandleCommPortPrinter = CreateFile(strNumCommPort, GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, 0, NULL);

SetCommState(HandleCommPortPrinter, &dcb);
...
Close(HandleCommPortPrinter);
return true;
}

PM MAIL   Вверх
takedo
Дата 15.9.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: нет
Всего: 3



после того как BOOL ret = SetCommState; if(!ret)GetLastError(&ErCode); и хотя бы посмотри чего не того.


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
NiТR0
Дата 15.9.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 28.6.2005

Репутация: нет
Всего: нет



Ура товарищи! Ответ найден!
Порт нельзя конфигурировать, если на нем стоит драйвер, т.е. он занят.
Ничего хорошего правда, но главное - до истины добрался!
Всем большое спасибо!
smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.