Estoy enviando datos a través de Serial a un FRDM-kl25z a través de una declaración printf en otro uC;
for (int i = 0; i <320; i++)
{
left--;
right++;
sprintf(left_arr, "%d", left);
sprintf(right_arr, "%d", right);
frdm.printf("%s,%s \n\r", left_arr, right_arr);
}
Y recibo los datos con este código en una interrupción en serie, llamada rx_data;
void rx_data()
{
pc.printf("rx interrupted!\n\r");
string current = "";
while (rpi.readable())
{
current += rpi.getc();
}
PC.printf("%s", current);
}
Estoy definiendo rpi como abajo;
Serial rpi(PTC4, PTC3); // tx, rx
Solo obtiene el primer carácter, por lo que el primer byte, de la transmisión en serie. También he probado con un contador y el puerto solo se puede leer para una iteración de 1 bucle.
He probado el código con otros uC, el LPC1768, y funciona bien.
Creo que es culpa del puerto serie del FRDM, ¿solo tiene un búfer de 1 byte o algo así?
¡Gracias!