problema con puerto serie
Publicado por cgillopez (1 intervención) el 07/04/2008 12:43:55
Hola, me gustaria que el programa que estoy haciendo leyese por el puerto serie de 1 a 80 caracteres que le paso por teclado.
Al ejecutarlo si escribo menos de 24 me lo escribe bien pero si he escribo mas de 23-24 no me lo visualiza por pantalla y me deja una linea en blanco.
El codigo, (GPSData=80):
/*abrir puerto serie*/
fd = open("/dev/ttyS1", O_RDWR);
if (fd>0){
while(1){
/* lectura puerto serie*/
n= read(fd,GPSData,80);
if (n>0){
strcat(GPSData, " ");
buf[n]=0;
printf("%s",GPSData);
// strcat(GPSData, " ");
//printf("%s",GPSData);
WriteGPSData(GPSData);
/* Despertamos a los hilos que gestionan las conexiones TCP con los clientes */
pthread_mutex_lock(&count_mutex);
pthread_cond_broadcast(&count_condition);
pthread_mutex_unlock(&count_mutex);
//usleep(1000000);
//contador += 1;
};
if (n<0){
exit(EXIT_FAILURE);
};
}
}
if (fd<0){
exit(EXIT_FAILURE);
};
/* cerrar puerto serie*/
close(fd);
}
Al ejecutarlo si escribo menos de 24 me lo escribe bien pero si he escribo mas de 23-24 no me lo visualiza por pantalla y me deja una linea en blanco.
El codigo, (GPSData=80):
/*abrir puerto serie*/
fd = open("/dev/ttyS1", O_RDWR);
if (fd>0){
while(1){
/* lectura puerto serie*/
n= read(fd,GPSData,80);
if (n>0){
strcat(GPSData, " ");
buf[n]=0;
printf("%s",GPSData);
// strcat(GPSData, " ");
//printf("%s",GPSData);
WriteGPSData(GPSData);
/* Despertamos a los hilos que gestionan las conexiones TCP con los clientes */
pthread_mutex_lock(&count_mutex);
pthread_cond_broadcast(&count_condition);
pthread_mutex_unlock(&count_mutex);
//usleep(1000000);
//contador += 1;
};
if (n<0){
exit(EXIT_FAILURE);
};
}
}
if (fd<0){
exit(EXIT_FAILURE);
};
/* cerrar puerto serie*/
close(fd);
}
Valora esta pregunta


0