Saltar al contenido

Puerto serie (RS -232) Conexión en C++

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *