Estoy intentando comunicarme con PIC32 UART. Soy capaz de transmitir cualquier dato pero tengo problemas para leer los datos. En PIC32 hay una función putsUART2("")
que puede transmitir cualquier dato y hay una función getsUART1(5, myBuffer, 123);
. Los parámetros para esta función son:
1)length: This is the length of the string to be received
2)buffer: This is the pointer to the location where the data
received have to be stored.
3)uart_data_wait: This is the time-out count for which the module
has to wait before return. If the time-out count is ‘N’,
the actual time out would be about (19 * N – 1) instruction cycles.
Ahora lo que estoy haciendo en mi código es
if((U2STAbits.URXDA)!=0) //if data received,then
{
getsUART2(5,RxBuffer , 123); //storing the data in RxBuffer
putsUART2(">>Data Received\r\n");
U2STAbits.URXDA = 0;
U2STAbits.OERR = 0;
putsUART2(RxBuffer); //transmitting the data back to the terminal
}
Ahora cuando escribo 'A', >>Data Received
está impreso en el terminal y estoy recuperando datos en el terminal. pero como el tamaño de RxBuffer
es 5
, solo almacena un carácter. ¿Alguien puede ayudarme con esto? Realmente quiero escribir una cadena y recuperarla en la terminal.
Por favor ayuda, gracias.