Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > C / C++ > lectura del puerto serial con C
-Foros de debate

C / C++
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

lectura del puerto serial con C
Enviado por J.M. el día 16 de mayo de 2008

Hola a todos. Estoy realizando un pequeño programa en C para leer del puerto serial (el programa tiene que funcionar en linux).

Para hacer el programa estoy utilizando la libreria termios.h la cual permite que le configures los parametros del puerto serial para que pueda leer correctamente.

Aquí os dejo el codigo:

Código:

struct termios parametros, oldtio;

//fflush(stdout);
if ((idf_serial=open(PUERTO_SERIAL, O_RDONLY | O_NOCTTY ))==-1) // abrimos la conexion al puerto seria
{
perror(PUERTO_SERIAL);
}
else fcntl(idf_serial, F_SETFL, 0); // hace que la funcion "read" devuelva un 0 si no hay datos para leer

// CONFIGURACION DEL PUERTO SERIAL

/* almacenamos la configuracion actual del puerto */
tcgetattr(idf_serial,&oldtio);

/* limpiamos struct para recibir los nuevos parametros del puerto */
bzero(&parametros, sizeof(parametros));
/*
BAUDRATE: Fija la tasa bps. Podria tambien usar cfsetispeed y cfsetospeed.
IXOFF : para activar el control de flujo de entrada por Software
CS8 : 8n1 (8bit,no paridad,1 bit de parada)
CLOCAL : conexion local, sin control de modem
CREAD : activa recepcion de caracteres
*/
parametros.c_cflag = BAUDRATE|IXOFF|CS8|CLOCAL|CREAD;

tcflush(idf_serial,TCIFLUSH); // Descarta los datos recibidos que no se han leido
tcsetattr( idf_serial, TCSANOW, &parametros ); //almacenamos la configuracion de las opciones



El problema que tengo es que no se como indicarle que no hay bit de paridad y ademas no se si tengo bien hecha la asignacion de parametros. Ademas cuando ejecuto el programa me lee caracteres que no reconoce y si muestro el numero que es el caracter me salen numeros negativos, es decir que no pertenecen a la tabla ASCII. Shock

Espero que alguién pueda ayudarme.

saludos.

 

Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network