Ayuda con UART EDU-CIAA

170 views
Skip to first unread message

Lucas Alberto Escribano

unread,
Sep 11, 2017, 11:34:26 PM9/11/17
to embebidos32

Buenas noches.

He pasado todo el día intentando resolver un problema y no logro dar con la solución.

 

En el firmware_v2 y la sAPI hay un ejemplo de utilización del ESP8266, y he estado jugando un poco con ella.

 

Cree una función uartReadString() para recibir un String completo de una sola vez y es la siguiente:

 

void uartReadString( uartMap_t uart, uint8_t* receivedString ){

 

                               int posicion;

 

 

                   switch(uart){

                   case UART_USB:

 

                                  while(available(UART_USB)==1) {

                                  *receivedString = Chip_UART_ReadByte(UART_USB_LPC);

                                  receivedString++;

                                  }

 

                   break;

                   case UART_232:

 

 

                                  while(available(UART_232)==1) {

                       *receivedString = Chip_UART_ReadByte(UART_232_LPC);

                       receivedString++;

                       }

 

                   break;

                   case UART_485:

                   break;

                   }

 

}

 

La función funciona correctamente.

 

Pero tengo el inconveniente de que cuando quiero crear una función que me busque algún contenido dentro de receivedString (la variable que debería contener todo el dato recibido), no logro dar con la tecla. La idea es implementar algo similar a string.indexOf() en arduino.

He estado probando con strchr(), pero (seguramente por un tema de tipo de variable) no logro que me largue un valor que NO sea NULL, o sea, no puedo encontrar coincidencias en el interior del string que recibo del RS232.

 

Para que se entienda bien, deseo buscar la palabra “OK” en el string que recibo para darme cuenta si el bicho se configuró correctamente o no.

 

Las funciones las estoy creando en la misma librería sAPI à sapi_uart.c

 

Si me pudieran ayudar se los agradecería muchísimo.

 

Desde ya muchas gracias y disculpen las molestias.

 

Enviado desde Correo para Windows 10

 

Pablo Ridolfi

unread,
Sep 11, 2017, 11:46:46 PM9/11/17
to embebidos32
Probaste con strstr?
char * pos = strstr(receivedString, "OK");
si NULL == pos, "OK" no se encuentra en receivedString.



--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Lucas Alberto Escribano

unread,
Sep 12, 2017, 7:43:25 AM9/12/17
to embeb...@googlegroups.com

Buenos dias pablo:

Si, he probado con esa función también.

De hecho lafunción strchr() funciona prácticamente igual.

El problema es que mientras debuggeo en receivedString no se guarda correctamente la cadena por alguna razón. Entonces no puedo ver correctamente lo que contiene. Si no debuggeo anda a la perfección pero no funcionan ninguna de las funciones de string.h. Para mi debe haber algún conflicto entre los tipos de las variables. Seguiré intentando. Muchas gracias.

 

Enviado desde mi teléfono con Windows 10

Luis Manuel Herrera

unread,
Sep 12, 2017, 7:50:16 AM9/12/17
to embeb...@googlegroups.com
Buenas!
Tal vez pregunte una tontería, pero... se puede debuggear y usar el UART_USB? Acaso esa UART no está ocupada por el debugger?
Saludos!

-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32+unsubscribe@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32+unsubscribe@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32+unsubscribe@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32+unsubscribe@googlegroups.com.

Lucas Alberto Escribano

unread,
Sep 12, 2017, 12:46:50 PM9/12/17
to embeb...@googlegroups.com

Apa, probablemente eso sea verdad. No lo había tenido en cuenta.

De todas formas lo pruebo sin debuggear y no deja de mostrarme un NULL en strchr()…O sea la función no encuentra la cadena dentro de la otra.

 

Enviado desde mi teléfono con Windows 10

 

-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.

martin ribelotta

unread,
Sep 12, 2017, 1:31:30 PM9/12/17
to embebidos32@
La UART de debug no se usa para nada al momento de depurar, salvo que la uses como UART vos especificamente.
En todo caso, armate algo que te imprima lo que estas reciviendo del serial donde llegan los datos del ESP8266.
Para verlos, podes mandarlos por la UART que esta en el mismo cable del debugger (son dos cosas aparte)
Reply all
Reply to author
Forward
0 new messages