UART1 en ESP32 no funciona [Resuelto]


 

Un problema muy común al utilzar la comunicación serial con este dispositivo es que la transmision o recepción no trabaje correctamente o simplemente no funcione.


Esto puede ser causado por diversos motivos, pero el mas común de ellos es que los pines a los que está asignado el puerto UART por defecto, estén siendo utilizados en la tarjeta de desarrollo para otra función, la embedded flash, onboard PSRAM u otros perifericos. Por ejemplo, en la tarjeta mas común del ESP32-WROOM-32 la distribución de pines (pinout), se encuentra de la siguiente manera:




UART 0

UART1

UART2

TX

1

9

17

RX

3

10

16

El puerto UART0 no es posible utilizarlo ya que esta designado para la terminal.


Si quisieramos utilizar el puerto UART1 por default deberíamos usar GPIO9 para RX1 y GPIO10 para TX1. Lo cual muy probablemente nos genere problemas y la recepción no funcionaría corretamente.


El puerto UART2 se puede utilizar sin problemas.





SOLUCIÓN


Cualquier GPIO puede ser utilizado para la comunicación UART, basta con definir los pines a utilizar desde el inicio al momento de crear el objeto en micropython.


Puedes descargar el código aquí:


Una vez cargado el programa en tu ESP32, puedes probar haciendo un puente entre la TX y RX que asignaste en el programa y podras observar en la consola los datos que esta recibiendo tu ESP32 por el puerto serial. Podrás observar algo así:




Si tienes alguna duda, puedes enviar un mensaje al chat web de la págino o enviarme un un DM haciendo click aquí.




3 visualizaciones0 comentarios

Entradas Recientes

Ver todo