Доброе вермя суток!! Посмотрите, пожалуйста, где может быть ошибка? Фрагмент кода должен отправить по COM порту данные, но постоянно получаю ошибку "Error writing port"
Код | ... HANDLE hPort; DCB Dcb; DWORD dwWrite; TOverlapped OverWrite; AnsiString WriteBytes;
hPort = CreateFile("COM3", GENERIC_READ||GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); if(hPort == INVALID_HANDLE_VALUE) ShowMessage("Error opening port");
if(!(GetCommState(hPort,&Dcb))) ShowMessage("Error getting port state"); Dcb.BaudRate = CBR_9600; Dcb.Parity = NOPARITY; Dcb.ByteSize = 8; Dcb.StopBits = ONESTOPBIT; if(!(SetCommState(hPort,&Dcb))) ShowMessage("Error setting port state");
if(!(SetCommMask(hPort,EV_RXCHAR))) ShowMessage("Error set mask");
OverWrite.hEvent = CreateEvent(NULL,true,false,NULL); if(OverWrite.hEvent == NULL) ShowMessage("Error creating write event");
WriteBytes = "qwerty"; if((!(WriteFile(hPort,WriteBytes.c_str(),sizeof(WriteBytes),&dwWrite,&OverWrite)))&&(GetLastError() != ERROR_IO_PENDING)) ShowMessage("Error writing port"); PurgeComm(hPort,PURGE_TXCLEAR||PURGE_RXCLEAR); CloseHandle(hPort); ...
|
|