Initialisierung: ================= dcb.DCBlength = sizeof(DCB); dcb.BaudRate = CBR_38400; dcb.ByteSize = 8; dcb.Parity = 0; dcb.StopBits = ONESTOPBIT; m_hCommPort = CreateFile("COM1", GENERIC_READ|GENERIC_WRITE,//access ( read and write) 0, //(share) 0:cannot share the COM port 0, //security (None) OPEN_EXISTING,// creation : open_existing FILE_ATTRIBUTE_NORMAL,// we want overlapped operation 0// no templates file for COM port... ); if( m_hCommPort == INVALID_HANDLE_VALUE) MessageBox(0, "ERROR OPENING PORT", "ERROR", MB_OK); Schleife (alle 20 ms) ========================= unsigned char* get_data(unsigned char *input) { unsigned char *data; bool success=0; data = (unsigned char*)malloc(3 * sizeof(unsigned char)); data[0] = 0x31; // Daten zum senden data[1] = (unsigned char)*input; data[2] = 0x33; if (SetCommState(m_hCommPort,&dcb) == NULL) MessageBox(0, "ERROR SETCOMMSTATE", "ERROR", MB_OK); if (WriteFile(m_hCommPort,data,3,dwBytesWritten ,NULL) == NULL) MessageBox(0, "ERROR WRITEFILE", "ERROR", MB_OK); if (SetCommMask (m_hCommPort, EV_RXCHAR) == NULL) MessageBox(0, "ERROR SETCOMMMASK", "ERROR", MB_OK); do { ReadFile(m_hCommPort,data,2,dwBytesWritten,NULL); } while (data[0]!=(unsigned char)*input); return data; } Schließen des Com Ports: =========================== CloseHandle(m_hCommPort);