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

[SOLUCIONADO] Almacenar valores de salida puerto serie en un array de caracteres

Estas en el tema de Almacenar valores de salida puerto serie en un array de caracteres en el foro de C/C++ en Foros del Web. Buenas tardes, Necesito almacenar toda la información que envío al puerto serie en una cadena de caracteres. char puerto []; Serial.print("$"); Serial.print("a"); Serial.print("bca"); que todo ...
  #1 (permalink)  
Antiguo 16/10/2013, 09:02
 
Fecha de Ingreso: octubre-2013
Mensajes: 31
Antigüedad: 10 años, 6 meses
Puntos: 0
Almacenar valores de salida puerto serie en un array de caracteres

Buenas tardes,

Necesito almacenar toda la información que envío al puerto serie en una cadena de caracteres.

char puerto [];

Serial.print("$");
Serial.print("a");
Serial.print("bca");

que todo eso se almacenase en la variable puerto de la forma

puerto [0] = $;
puerto [1] = a;
puerto [2] = b;
puerto [3] = c;
puerto [4] = a;


Si hay alguna función que simplifique eso y almacene directamente los valores de salida del puerto serie en un array de caracteres sería perfecto-

Un saludo
  #2 (permalink)  
Antiguo 17/10/2013, 07:58
 
Fecha de Ingreso: octubre-2013
Mensajes: 31
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Almacenar valores de salida puerto serie en un array de caracteres

Hola a todos

He ido avanzando en el programa y ahora lo que necesito es alguna función que convierta una variable int a char.

char cadena[100];
int numero = 22;
int puntero cadena = 0;

_______

Código:
if(numero>=10)
  {
  int valor = numero/10; 
  cadena[punterocadena] = valor;
  punterocadena++;
  
  cadena[punterocadena] = numero - (valor*10);
  }
  else
  {
   cadena[punterocadena] = numero;
   punterocadena++;
  }
esto es lo que he intentado, pero el resultado es que no se almacenan los valores correctamente en la cadena de caracteres.

Pasa lo mismo si intento
Código:
cadena[punterocadena] = (char) numero;
necesito conseguir que lo lea como un unico caracter entre comillas simples.

es decir:
Código:
cadena[0] = '2';
cadena[1] = '2';


Un saludo y gracias

Última edición por anthony20; 17/10/2013 a las 08:16
  #3 (permalink)  
Antiguo 17/10/2013, 13:09
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Almacenar valores de salida puerto serie en un array de caracteres

Estas buscanfo sprintf o snprintf, que estan en stdio

Código C:
Ver original
  1. char bff[100];
  2. snprintf(bff, sizeof(bff), "%d", 789);

Con eso tienes que bff[0]='7', bff[1]='8', y bff[2]='9'. Si quieres añadirlo a otra cadena solo tienes que concatenar donde quieras.

Saludos
vosk
  #4 (permalink)  
Antiguo 17/10/2013, 16:55
 
Fecha de Ingreso: octubre-2013
Mensajes: 31
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Almacenar valores de salida puerto serie en un array de caracteres

Gracias por la ayuda Vosk:

Finalmente lo arreglé de una manera más sencilla, simplemente haciendo:

Código:
cadena[punterocadena] = 48 + numero;
Con eso se consigue pasar el numero entero al carácter correspondiente.

Un saludo.
  #5 (permalink)  
Antiguo 18/10/2013, 12:21
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Almacenar valores de salida puerto serie en un array de caracteres

Una observacion: "...Con eso se consigue pasar el numero entero al carácter correspondiente..." siempre y cuando el numero esté entre 0 y 9; supongo que ya lo has tenido en cuenta porque en el otro post usaste como numero el 22, luego 48+22 = 'F'

Saludos
vosk

Etiquetas: almacenar, caracteres, puerto, salida, serie
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 20:37.