C/Visual C - Comunicacion con COM

 
Vista:

Comunicacion con COM

Publicado por Iván (1 intervención) el 16/05/2001 16:47:50
Estoy realizando un programa en C para MSDOS pero para ejecutarse en una ventana de consola de Windows 98. En este programa he de comunicarme con un modem PCMCIA que esta en el COM5. Mi pregunta es ¿como comunico con ese puerto teniendo el puerto base y la IRQ de este puerto?

Gracias.
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

Comunicación con un puerto COM en Windows 98 usando C

Publicado por Alejandro (974 intervenciones) el 25/09/2024 16:50:03
Para comunicarte con un puerto COM en Windows 98 utilizando C, puedes utilizar las funciones de la API de Windows para acceder al puerto serie. Aquí tienes un ejemplo de cómo puedes hacerlo:

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
37
38
39
40
41
42
43
#include <stdio.h>
#include <windows.h>
 
int main() {
    HANDLE hComm;
    char portName[] = "COM5"; // Puerto COM que deseas utilizar
    DCB dcb;
 
    // Abrir el puerto COM
    hComm = CreateFile(portName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
 
    if (hComm == INVALID_HANDLE_VALUE) {
        printf("Error al abrir el puerto COM\n");
        return 1;
    }
 
    // Obtener la configuración actual del puerto
    if (!GetCommState(hComm, &dcb)) {
        printf("Error al obtener la configuración del puerto\n");
        CloseHandle(hComm);
        return 1;
    }
 
    // Configurar los parámetros del puerto
    dcb.BaudRate = CBR_9600; // Velocidad de transmisión
    dcb.ByteSize = 8; // Tamaño de byte
    dcb.Parity = NOPARITY; // Paridad
    dcb.StopBits = ONESTOPBIT; // Bits de parada
 
    // Establecer la configuración del puerto
    if (!SetCommState(hComm, &dcb)) {
        printf("Error al establecer la configuración del puerto\n");
        CloseHandle(hComm);
        return 1;
    }
 
    // Realizar operaciones de lectura/escritura en el puerto COM
 
    // Cerrar el puerto COM
    CloseHandle(hComm);
 
    return 0;
}

En este ejemplo, se utiliza la función `CreateFile` para abrir el puerto COM especificado (`COM5` en este caso). Luego, se utiliza la función `GetCommState` para obtener la configuración actual del puerto y la función `SetCommState` para establecer los parámetros deseados (como la velocidad de transmisión, el tamaño de byte, la paridad y los bits de parada). A partir de ahí, puedes realizar operaciones de lectura y escritura en el puerto COM según tus necesidades.

Recuerda que este ejemplo es para Windows 98 y utiliza la API de Windows. Asegúrate de compilar y ejecutar el programa en un entorno compatible con Windows 98.

Espero que esto te sea útil. ¡Buena suerte con tu programa de comunicación con el puerto COM, Iván!
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