Red de conocimiento informático - Computadora portátil - Programación DCB

Programación DCB

1 Abrir puerto serie

Procesar hCom//variable global, identificador de puerto serie

hcom = crear archivo(" com 1 ",//com 1 puerto.

GENERIC_READ |GENERIC_WRITE, //Permitir lectura y escritura

0, //Modo exclusivo

Vacío,

OPEN_EXISTING, //Abrir en lugar de crear.

0, //Modo de sincronización

NULL);

if(hCom==(HANDLE)-1)

{

AfxMessageBox("¡Error al abrir COM!");

Devuelve FALSO

}

Devuelve VERDADERO

2. Parámetros de configuración

Tiempo de espera COMMTIMEOUTS;

//Establecer tiempo de espera de lectura

Pausa. ReadIntervalTimeout = 1000;

Pausa. ReadTotalTimeoutMultiplier = 500;

Pausa. ReadTotalTimeoutConstant = 5000

//Establecer tiempo de espera de escritura

Pausa. WriteTotalTimeoutMultiplier = 500;

Pausa. WriteTotalTimeoutConstant = 2000;

SetCommTimeouts(hCom & timeout); //Establecer tiempo de espera

DCB dcb

GetCommState(hCom &dcb);

dcb. velocidad en baudios = 9600; //La velocidad en baudios es 9600.

dcb. ByteSize = 8; //Cada byte tiene 8 bits.

dcb. Paridad = NOPARITY // Sin bit de paridad

dcb. StopBits = TWOSTOPBITS//Dos bits de parada

SetCommState(hCom & amp; dcb);

3. Recibir y enviar datos

//Lectura síncrona Puerto serie

char str[100];

DWORD wCount//Número de bytes leídos

BOOL bReadStat

bReadStat=ReadFile (hCom, str, 100, & ampwCount, NULL);

If (!Tabla de pan)

{

AfxMessageBox("¡Error al leer el puerto serie!");

Devolver FALSO

}

Devolver VERDADERO

//Escribe el puerto serie sincrónicamente

búfer char LPO [ 100];

DWORD dwbytes escritura = 100;

COMSTAT ComStat

DWORD dwErrorFlags

BOOL bWriteStat

ClearCommError(hCom y dwErrorFlags.

ComStat);

bWriteStat=WriteFile(hCom, lpOutBuffer, dwBytesWrite y ampdwBytesWrite, NULL);

if (!bWriteStat)

{

AfxMessageBox("¡Error al escribir en el puerto serie!");

}

PurgeComm(hCom, PURGE_TXABORT|

PURGE _ rx abort | PURGE _ tx borrar | PURGAR _ rx borrar);