C/Visual C - puertos

 
Vista:

puertos

Publicado por jorge (2 intervenciones) el 04/06/2003 00:31:14
por favor necesito codigo de envio de datos por el puerto serial.
para visual c++ o borland
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Envío de datos a través del puerto serial en C++

Publicado por Alejandro (1286 intervenciones) el 02/07/2025 00:49:45
Aquí tienes un ejemplo de código para enviar datos a través del puerto serial utilizando Visual C++ y Borland C++.

Ejemplo en Visual C++



Para enviar datos a través del puerto serial en Visual C++, puedes utilizar la API de Windows. Aquí tienes un ejemplo básico:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <windows.h>
#include <iostream>
 
void enviarDatosPorPuertoSerial(const char* datos, const char* puerto) {
    HANDLE hSerial;
    hSerial = CreateFile(puerto, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 
    if (hSerial == INVALID_HANDLE_VALUE) {
        std::cerr << "Error al abrir el puerto serial." << std::endl;
        return;
    }
 
    // Configuración de la comunicación
    DCB dcbSerialParams = {0};
    dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
    GetCommState(hSerial, &dcbSerialParams);
    dcbSerialParams.BaudRate = CBR_9600; // Velocidad en baudios
    dcbSerialParams.ByteSize = 8;        // Tamaño de byte
    dcbSerialParams.StopBits = ONESTOPBIT; // Bits de parada
    dcbSerialParams.Parity = NOPARITY;   // Paridad
    SetCommState(hSerial, &dcbSerialParams);
 
    DWORD bytesEscritos;
    WriteFile(hSerial, datos, strlen(datos), &bytesEscritos, NULL);
 
    std::cout << "Datos enviados: " << datos << std::endl;
 
    CloseHandle(hSerial);
}
 
int main() {
    const char* puerto = "COM1"; // Cambia esto al puerto que estés utilizando
    const char* datos = "¡Hola, puerto serial!";
    enviarDatosPorPuertoSerial(datos, puerto);
    return 0;
}

Ejemplo en Borland C++



Para Borland C++, puedes usar un enfoque similar utilizando la API de Windows. Aquí tienes un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <windows.h>
#include <stdio.h>
 
void enviarDatosPorPuertoSerial(const char* datos, const char* puerto) {
    HANDLE hSerial;
    hSerial = CreateFile(puerto, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 
    if (hSerial == INVALID_HANDLE_VALUE) {
        printf("Error al abrir el puerto serial.\n");
        return;
    }
 
    // Configuración de la comunicación
    DCB dcbSerialParams = {0};
    dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
    GetCommState(hSerial, &dcbSerialParams);
    dcbSerialParams.BaudRate = CBR_9600; // Velocidad en baudios
    dcbSerialParams.ByteSize = 8;        // Tamaño de byte
    dcbSerialParams.StopBits = ONESTOPBIT; // Bits de parada
    dcbSerialParams.Parity = NOPARITY;   // Paridad
    SetCommState(hSerial, &dcbSerialParams);
 
    DWORD bytesEscritos;
    WriteFile(hSerial, datos, strlen(datos), &bytesEscritos, NULL);
 
    printf("Datos enviados: %s\n", datos);
 
    CloseHandle(hSerial);
}
 
int main() {
    const char* puerto = "COM1"; // Cambia esto al puerto que estés utilizando
    const char* datos = "¡Hola, puerto serial!";
    enviarDatosPorPuertoSerial(datos, puerto);
    return 0;
}

Notas importantes:


- Asegúrate de que el puerto serial que estás utilizando (por ejemplo, "COM1") esté disponible y configurado correctamente en tu sistema.
- Puedes cambiar la configuración de la velocidad en baudios y otros parámetros según tus necesidades.
- Este código es un ejemplo básico y puede requerir ajustes según el entorno y la configuración específica de tu aplicación.

¡Buena suerte con tu proyecto, Jorge!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar