In meinem oben verlinkten RN-Wissen Beispiel setze ich auch die Timeoutparameter. Hast du das auch implementiert ? offenbar wartet ja der PC, bis er dir die Daten übergibt
Code:COMMTIMEOUTS sTo; DCB sDcb; memset(&sDcb,0,sizeof(sDcb)); sDcb.DCBlength = sizeof(sDcb); sDcb.BaudRate = Baud; // 9600 oder eine andere Baudrate sDcb.fParity = FALSE; sDcb.fBinary = TRUE; sDcb.Parity = NOPARITY; sDcb.StopBits = ONESTOPBIT; sDcb.fOutxCtsFlow = FALSE; sDcb.fOutxDsrFlow = FALSE; sDcb.fDtrControl = DTR_CONTROL_ENABLE; sDcb.fRtsControl = RTS_CONTROL_ENABLE; sDcb.fDsrSensitivity = FALSE; sDcb.fAbortOnError = FALSE; sDcb.ByteSize = 8; if(SetCommState(hFile,&sDcb)) { sTo.ReadIntervalTimeout = MAXDWORD; // 0 ms Read-Timeout sTo.ReadTotalTimeoutMultiplier = 0; sTo.ReadTotalTimeoutConstant = 0; sTo.WriteTotalTimeoutMultiplier = 1; // 1*2 ms Write Timeout sTo.WriteTotalTimeoutConstant = 2; if(SetCommTimeouts((HANDLE)hFile,&sTo)) return 1; // O.K. return
Lesezeichen