Manejo de puerto serie

10/02/2004 - 19:51 por ISC. Francisco Orozco Candela | Informe spam
Que tal

Estoy empezando a "intentar" programar el puerto serie. Tengo un
código que puedo compilar bajo el Turbo C++ de Borland en consola, pero al
intentar compilarlo en Visual C++ no encuentra la librería <bios.h> para
utilizar la funcion "bioscom". Me podrían decir si bioscom se utiliza en
VC++ y de no utilizarlo que instrucciones puedo manejar para enviar y
recibir información por el puerto serie??? Muchas gracias de antemano y les
agradeceré me contesten...

Ing. Francisco Javier Orozco Candela
Ingeniería Digital Aplicada S.A. de C.V.
 

Leer las respuestas

#1 ISC. Francisco Orozco Candela
12/02/2004 - 23:25 | Informe spam
He logrado entablar la comunicación con un nodo QNX mediante el puerto
serie, quizás esto sea de lo mas común, pero intentaré explicar como lo hice
para aquellos que esten con la duda como yo lo estuve

HANDLE COM1; // Se declara el puerto de tipo HANDLE
DCB dcb; // Se declara una estructura DCB donde se
configurará el puerto serie
DWORD BytesOK; // Se declara una variable que me devolverá los bytes
enviados

// Aqui creo el puerto
COM1 = CreateFile("COM1", GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, NULL);

// En esta parte
asigno la configuracion del puerto a la estructura
dcb.BaudRate = 9600; // velocidad
dcb.fParity = FALSE; //no paridad
dcb.ByteSize = 8; //8 bits de datos
dcb.Parity = NOPARITY; //no paridad
dcb.StopBits = ONESTOPBIT; //1 bit de parada

SetCommState(COM1, &dcb); // Aqui aplico la configuracion

if(COM1 != INVALID_HANDLE_VALUE)
{
printf("Transmitiendo saludo.");
while(1) // Es un ciclo infinito
donde constantemente está enviando, pero igual puedes enviarlo una sola vez
WriteFile(COM1, "Saludos desde Windows XP...", 50, &BytesOK,
NULL);
}
else
printf("Error al abrir el puerto COM1...");

CloseHandle(COM1); // En esta parte cierro el puerto serie
}

Para recibir la información unicamente reemplazo la sentencia
WriteFile por ReadFile.
en este sitio
http://msdn.microsoft.com/library/d...adfile.asp
viene como utilizar los parametros, pero lo importante para entablar la
comunicación es configurar el puerto, por ello que escribí el código.


"Rodrigo Corral González [MVP]" escribió en el
mensaje news:%
Tienes que usar las funciones del API de Win32 habituales para trabajar


con
ficheros, OpenFile, ReadFile, WriteFile, expecificando como nombre de
fichero el nombre del puerto que quieres usar "LPTx" o "COMx".

Este articulo sobre el tema es muy intersante Serial Communication in
Windows By Ashish Dhar
http://www.codeproject.com/system/serial_com.asp


Un saludo
Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net


Preguntas similares