Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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); |