TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jorgejg en 20 de Septiembre de 2011, 14:26:41
-
Estoy intentando concatenar caracteres recibidos por USART en una sola cadena pero no resulta. Tengo lo siguiente:
char Byte_USART;
char string[5];
char stringx[5];
do{
while(!DataRdyUSART());
Byte_USART=getcUSART(); //capturo un byte
itoa(Byte_USART,stringx); //convierto a cadena
strcat(string,stringx); //concateno lo que hay en stringx a string
printf("Concatenado: %c",string); //,uestro el resultado de la concatenación
}
while ( 27 != string[0]);
donde podria estar la falla?
-
Hola, debes inicialilizar primero el string.
char Byte_USART;
char string[5] = ""; // <----------------
char stringx[5];
do{
while(!DataRdyUSART());
Byte_USART=getcUSART(); //capturo un byte
itoa(Byte_USART,stringx); //convierto a cadena
strcat(string,stringx); //concateno lo que hay en stringx a string
printf("Concatenado: %c",string); //,uestro el resultado de la concatenación
}
while ( 27 != string[0]);
Saludos !
-
Gracias Mr. Richi, ahora si concatena bien.
-
Hola, igual tené en cuenta que cuando haces el printf podes perder caracteres.
Saludos !
-
uhm a que te refieres con perder caracteres? a veces no llegan los caracteres que uno envia a la PC? mejor deberia usar el putrsUSART?
La concatenación se da en valores numericos, porque no se concatena en formato de caracteres ascii?
-
Hola, te comentaba esto porque mientras esta trabajando la función printf ( no se donde descarga los caracteres ) podes estar recibiendo mas caracteres por la UART y esos mismo pueden ser ""perdidos".
Saludos !