открываеш порт
hPort=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
изменяеш как тебе надо параметры связи
GetCommState(hPort,&dcb);
dcb.ByteSize=8; // number of bits/byte, 4-8
dcb.StopBits=2; // 0,1,2 = 1, 1.5, 2
dcb.Parity=MARKPARITY; // 0-4=no,odd,even,mark,space
dcb.BaudRate=PortSpeed;
SetCommState(hPort,&dcb);
Очишаеш буфер
PurgeComm(hPort,PURGE_TXCLEAR|PURGE_TXABORT);
Устанавливаеш параметры ожидания
COMMTIMEOUTS ct;
ct.ReadIntervalTimeout=Timeout;
ct.ReadTotalTimeoutMultiplier=Timeout;
ct.ReadTotalTimeoutConstant=0;
ct.WriteTotalTimeoutMultiplier=ct.WriteTotalTimeoutConstant=0;
SetCommTimeouts(hPort,&ct);
И тупо читаещ
a=ReadFile(hPort,&Buf[0],1,&bc,NULL);
return((a<<8)+Buf[0]);