Hola a todos, vuelvo a molestar y a pedir alguna ayudita. Estoy intentando comunicar por puerto serie dos placas (un LPC1769 c/u), una es una placa que mide distancia (a traves de un sensor por ultrasonido) y otra es la placa de "adquisición de datos". Esta ultima se comunica a la PC por USB con el famoso conversor FTDI y me muestra todo en el putty, con eso no tengo problema.
Mi problema es la comunicación entre las dos placas. Yo busco mandar un byte a traves de la UART1 desde la de adquisición a la que mide distancia, que esta ultima lo reciba y responda con el valor de la distancia a traves de su UART3. Para empezar, y descartar problemas con el sensor, en vez de mandar la distancia, quiero mandar un simple mensaje. Este es el codigo que escribi y no logro que se comuniquen. (Descarten cualquier error de cableado o de configuración de las UART o que este pifiando las UART porque revise todo 5mil veces). Muchisimas gracias, dejo mis códigos, puede que tenga que ver con alguna cuestion de interrupciones que no este teniendo en cuenta?
PD: De los puertos del micro van a un MAX232 antes de llegar a los DB9, esta chequeada la configuracion receptor-emisor, emisor-receptor.
CODIGO PLACA DE ADQUISICION DE DATOS (PIDE SONIDO Y LO MANDA A LA COMPU POR FTDI):
------------------------------------------------------------------------------------------------------///
int b;
int i;
const char mensaje;
void App_MaquinaEstados ()
{
switch (App_EstadoActual)
{
case App_Estado_PidiendoSonido:
for (i=0;i<1000000;i++)
{
b=1;
// Enviar un caracter definido (un 1 que entra al case '1' en la de sonido
UART_SendByte (LPC_UART1 ,b );
// Recibir el sonido
//mensaje = UART_Receive(LPC_UART1);
UART_Receive(LPC_UART1, (uint8_t*)mensaje, (uint32_t)strlen(mensaje), BLOCKING);
}
// Respuesta automatica al pedir sonido
const char uarttest [ ]= {"PROBANDO LA FUNCION RESPONDE A TECLADO \n\r"};
UART_Send (LPC_UART2 , uarttest , strlen(uarttest) , BLOCKING) ;
UART_Send (LPC_UART2 , mensaje , strlen(mensaje) , BLOCKING) ;
//uint8_t sonido[10];
// Enviar el sonido a la computadora
//UART_Send(LPC_UART2, sonido, 10, BLOCKING) ;
App_Menu_Enviar ();
App_EstadoActual = App_Estado_Idle;
break;
------------------------------------------------------------------------------------------------------///
CODIGO PLACA DISTANCIA (RECIBE UN BYTE Y ENVIA A LA PLACA DE ADQUISICION UN MENSAJE):
------------------------------------------------------------------------------------------------------///
const char mensaje [ ]= {"CORRECTA COMUNICACION CON LA DE MOVIMIENTO:"};
void UART3_IRQHandler ()
{
int c;
c = UART_ReceiveByte (LPC_UART3);
switch(c)
{ case '1':
UART_Send (LPC_UART3 , mensaje , strlen(mensaje) , BLOCKING) ;
//UART_Send(LPC_UART3, (uint8_t*)mensaje, (uint32_t)strlen(mensaje), BLOCKING);
break;
}
}