Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Com не работает без Гипертерминала


Автор: Гость_Fixxxer 21.1.2005, 07:01
Люди, подскажите, в чем касяк. Написал прогу считывания и передачи на COM порт. Но она корректно начинает работать талько после того, как запустишь гипертерминал на прием и передачу соответственно.

Автор: maxim1000 21.1.2005, 10:43
не помешало бы написать:
1. с каким устройством идет общение
2. привести код программы (ту часть, которая относится к работе с COM-портом)

Автор: _hunter 21.1.2005, 11:08
в своей программе ты, похоже, пропустил стадию инициализации порта, и гиппер терминалу приходится делать это за тебя

Автор: Гость_Fixxxer 21.1.2005, 12:38
Посмотрите, может я что упустил.
--------------------------------------------------------------

DCB dcb;
COMMTIMEOUTS ct;
HANDLE port;
DWORD mask;
DWORD bc;
char buf[100];



dcb.DCBlength=sizeof(DCB);
BuildCommDCB("baud=9600 parity=N data=8 stop=1",&dcb);
dcb.fNull=TRUE;

ct.ReadIntervalTimeout=20;
ct.ReadTotalTimeoutMultiplier=ct.ReadTotalTimeoutConstant=0;
ct.WriteTotalTimeoutMultiplier=ct.WriteTotalTimeoutConstant=0;
port=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

SetCommState(port,&dcb);
SetCommTimeouts(port,&ct);
PurgeComm(port,PURGE_RXCLEAR);



SetCommMask(port,EV_RXCHAR);

WaitCommEvent(port,&mask,NULL);

ReadFile(port,&buf,100,&bc,NULL);


CloseHandle(port);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)