Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Comunicación con com1

Estas en el tema de Comunicación con com1 en el foro de C/C++ en Foros del Web. Hola, tengo que leer el com1, pero no me funciona, aparece el error:(0xC0000096: Privileged instruction), este es el código,desde ya muchas gracias a quienes puedan ...
  #1 (permalink)  
Antiguo 21/05/2013, 14:33
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 11 años
Puntos: 0
Exclamación Comunicación con com1

Hola, tengo que leer el com1, pero no me funciona, aparece el error:(0xC0000096: Privileged instruction), este es el código,desde ya muchas gracias a quienes puedan ayudarme:

// serial3.cpp: define el punto de entrada de la aplicación de consola.
//

#include "stdafx.h"
#include "stdio.h"
#include "windows.h"
#include "conio.h"
#include "iostream"
#include "dos.h"
int _tmain(int argc, _TCHAR* argv[])
{
int val,i;

HANDLE hDevice = CreateFile(L"COM1",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);

if (hDevice !=INVALID_HANDLE_VALUE)
{
printf("Port opened! \n");
DCB lpTest;
GetCommState(hDevice,&lpTest);
lpTest.BaudRate = CBR_9600;
lpTest.ByteSize = 8;
lpTest.Parity = NOPARITY;
lpTest.StopBits = ONESTOPBIT;
SetCommState(hDevice,&lpTest);
}
printf("Ejecutando programa\n");
Sleep(100);
val=0;
for (i=1;i<50;i++)
{
printf("vuelta %d\n",i);
val = inp(0x3F8);
printf("Valor pto: %d\n",val);
Sleep(10000);
}

return 0;
}
  #2 (permalink)  
Antiguo 21/05/2013, 15:14
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Comunicación con com1

En windows no puedes llamar directamente desde una aplicacion lanzada por el usuario a las funciones inp(), inpw(), inpd(), outp(), outpw(), outpd() porque te van a generar ese error aun cuando la llamada se haya ejecutado con exito (pero todo esto si que funciona desde servicios por ejemplo).

Mejor usa las funciones de inpout32.dll o create una libreria para simular esas funciones con DeviceIoControl. El inpout32 puedes encontrarlo seguramente en la msdn; la referencia a DeviceIoCtrl la tienes en la win32 api reference manual o tambien en la msdn.

Saludos
vosk
  #3 (permalink)  
Antiguo 21/05/2013, 16:10
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 11 años
Puntos: 0
Respuesta: Comunicación con com1

Ok, muchas gracias, voy a investigarlo, jamás había escuchado sobre eso.
  #4 (permalink)  
Antiguo 22/05/2013, 09:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 49
Antigüedad: 13 años
Puntos: 0
Respuesta: Comunicación con com1

hola yo he trabajado el puerto com pero de manera muy diferente al código publicado y nunca he tenido en cuneta lo que comenta el usuario vosk

Debido a que uso una librería no estándar de C que se llama LnxCOMM con la ventaja que es multiplataforma y con la cual he manejado el puerto com normal y virtuales creados desde un usb sin problema.

eso si es solo para programación estilo C pero creo que se puede migrar a C++
  #5 (permalink)  
Antiguo 28/10/2013, 16:48
 
Fecha de Ingreso: junio-2010
Mensajes: 11
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Comunicación con com1

William me podrias ayudar porque yo uso esa libreria lnxcomm, pero me marca errores, me podrías ayudar

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:32.