1 votos

Corrupción de datos al utilizar servicios de cola RTOS

Estoy tratando de crear una tarea de gatekeeper para mostrar los datos del sensor en la pantalla a través de UART. Los atributos se definen en la estructura de la siguiente manera,

typedef struct Peripheral_data
{
    volatile char data[5];
    char Source[15];
    char String[5];
    char Nextline[3];
}PeriData;
/****************************************************************************************************************

 An array of structures can be declared and initilized according to the need.

 ****************************************************************************************************************/
static PeriData Peripheral[2] =
{
        { "", "TMPSEN", "Temp:", "\r\n"},

        { "", "Light_Sensor", "Lumos", "\r\n"}

};

Pero al enviar a través de la cola el Source[0] de Peripheral[0] está cambiando a

\0

de

T

Adjunto capturas de pantalla como referencia.

Captura de pantalla 1: Esta imagen muestra la inicialización de la estructura al principio. enter image description here

Captura de pantalla 2: Esta imagen muestra los datos presentes en la variable Origen para la estructura uno. Aquí los datos indexados por el 0 en la variable Source es T. Pero automáticamente, después de enviar a través de la cola, el Source[0] para la primera estructura se convierte en cero señor. Pero a veces esto sucede antes de enviar a través de la cola aswell. enter image description here

¿Podría alguien sugerirme cuál puede ser el problema? Por otra parte he desarrollado este código, alrededor de un mes atrás y corrió sin problemas sobre el mismo tablero. El chip estoy usando es lpc 1768.

Pero cuando ahora intento ejecutar el mismo código, aparece el problema mencionado.

3voto

arun Puntos 16

Su matriz de caracteres 'data' tiene una longitud de 5 caracteres. Sin embargo, parece que has intentado almacenar un entero completo (65519 en la segunda captura de pantalla). Una vez que incluya ' \0 para el final de la cadena, terminará con 6 caracteres. Este 6º carácter es probablemente el que está escrito al principio del 2º campo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X