Esta es la contestación más completa que encomtrarás compartir, sin embargo mírala detenidamente y analiza si se adapta a tu proyecto.
Solución:
Por favor, eche un vistazo aquí:
- RS-232 para Linux y Windows 1)
- Programación del puerto serie de Windows 2)
- Uso de los puertos serie en Visual C++ 3)
- Comunicación serie en Windows
1)Puede usar esto con Windows (incl. MinGW) así como con Linux. Alternativa, solo puede usar el código como ejemplo.
2)Tutorial paso a paso de cómo usar los puertos serie en Windows
3)Puedes usar esto literalmente en MinGW
Aquí hay un código muy, muy simple (sin ningún tipo de configuración o manejo de errores):
#include
/* ... */
// Open serial port
HANDLE serialHandle;
serialHandle = CreateFile("\\.\COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
// Do some basic settings
DCB serialParams = 0 ;
serialParams.DCBlength = sizeof(serialParams);
GetCommState(serialHandle, &serialParams);
serialParams.BaudRate = baudrate;
serialParams.ByteSize = byteSize;
serialParams.StopBits = stopBits;
serialParams.Parity = parity;
SetCommState(serialHandle, &serialParams);
// Set timeouts
COMMTIMEOUTS timeout = 0 ;
timeout.ReadIntervalTimeout = 50;
timeout.ReadTotalTimeoutConstant = 50;
timeout.ReadTotalTimeoutMultiplier = 50;
timeout.WriteTotalTimeoutConstant = 50;
timeout.WriteTotalTimeoutMultiplier = 10;
SetCommTimeouts(serialHandle, &timeout);
Ahora puedes usar WriteFile()
/ ReadFile()
para escribir/leer bytes. No olvides cerrar tu conexión:
CloseHandle(serialHandle);
Ten en cuenta dar visibilidad a esta sección si te fue útil.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)