//Global Variables HANDLE hComm = NULL; COMMTIMEOUTS ctmoNew = {0}, ctmoOld; DCB dcbCommPort; char InBuff[100]; char *a="COM1"; //Open the COM port hComm = CreateFile(a,GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0); if(hComm == INVALID_HANDLE_VALUE){ ....// IF the COM port can not be opened } // SET THE COMM TIMEOUTS. GetCommTimeouts(hComm,&ctmoOld); ctmoNew.ReadTotalTimeoutConstant = 100; ctmoNew.ReadTotalTimeoutMultiplier = 0; ctmoNew.WriteTotalTimeoutMultiplier = 0; ctmoNew.WriteTotalTimeoutConstant = 0; SetCommTimeouts(hComm, &ctmoNew); // SET BAUD RATE, PARITY, WORD SIZE, AND STOP BITS. // THERE ARE OTHER WAYS OF DOING SETTING THESE BUT THIS IS THE EASIEST. dcbCommPort.DCBlength = sizeof(DCB); GetCommState(hComm, &dcbCommPort); BuildCommDCB("14400,N,8,1", &dcbCommPort); SetCommState(hComm, &dcbCommPort); //Send commands to COM port TransmitCommChar(hComm, '0'); TransmitCommChar(hComm, '1'); TransmitCommChar(hComm, '+'); TransmitCommChar(hComm, '/'); TransmitCommChar(hComm, '/'); TransmitCommChar(hComm, 'x'); TransmitCommChar(hComm, 146); TransmitCommChar(hComm, 60); TransmitCommChar(hComm, '/'); TransmitCommChar(hComm, '/'); //Read the COM port ReadFile(hComm, InBuff, 50, &dwBytesRead, NULL); //InBuff contains the COM received bytes //Close safety the COM port // IF A PORT WAS OPENED, CLOSE IT if(hComm) { Sleep(250); // WAIT FOR THREAD TO FINISH SetCommTimeouts(hComm, &ctmoOld); CloseHandle(hComm); }