Estoy empezando a trabajar con una ESP32.
Según el esquema de PinOuts, tiene 3 puertos de comunicación.
En un manual que he leido, recomendaba a no usar los puertos de comunicación Rx1 y Tx1 ya que si lo haces la ESP32 se bloquea. La razón que indica es, que de manera predeterminada UART1 usa los mismos pines que la memoria Flash.
Opbiando este recomendación, y para probar, realicé un Steck corto, y tiene razón, que se bloquea:
int LED =2;
void setup ( )
{
Serial.begin(19200);
Serial1.begin(19200);
pinMode(LED,OUTPUT);
}
void loop ( )
// Software equivalente a presionar en el escudo GSM el botón "Power"
{
digitalWrite(LED,HIGH);
Serial.println("Encendido");
delay(2000);
digitalWrite(LED,LOW);
Serial.println("Apagado");
delay(5000);
}
Como no hace falta ni pinchar un led, ya que el integrado de la placa, está anexo al pin 2, es muy sencillo ver si parpadea.
En este caso no hace nada.
Mi siguiente paso, es intentar usar el UART2, y así dejar libre el UART0, para comunicación con el Monitor Serie del PC.
En este punto es donde me atasco.
Para el Arduino, hay muchos casos en los que se usa la librería SofwareSerial para habilitar otros pines de comunicación.
En el caso de que se use un MEGA, con habilitar el Serial1, o Serial2, tenemos el problema solucionado.
En este caso y como vienen indicados de fabrica para el UART2 los pines (RX 16, y Tx 17), intenté operar de igual manera, pero no soy capaz de comunicarme.
Mantengo comunicación con el Monitor Serial, pero no tengo comunicación por el UART2.
He investigado sobre la forma de comunicarse con ellos, y hasta ahora encuentro casos en la que usan la librería HardwareSerial, para definir los puertos Rx y Tx.
I solved this problem when I discovered that quite every pin can be used for UART2 and UART3 in the "hardware serial" setup.
Surbyte ya lo indicó tambien en un post antiguo:
Lo entiendes mal tauro, el ESP32 permite reprogramar todo. Pero tambien se permite usar una forma de SoftwareSerial especial pera los ESP8266 y 32. Ya la has usado Joel_Zavala?
La cuestión es que si la ESP32, como bien dice Surbyte permite configurarlo todo, pero ya de serie viene con puertos establecidos de comunicación, ¿Es obligatorio emplear librerías para definir esos puertos, o se puede trabajar con los preestablecidos con normalidad, al igual que hacemos con los Arduino MEGA?
Gracias de antemano.
Continuaré trabajando en ello.