Problème uart1 esp32

Bonjour

Sur un esp32 wroom32D, je souhaite utiliser les uart 1 et 2.

Mais quand j'initialise le serial1 dans le setup, ça me plante l'esp, et m’envoie des messages dans le moniteur.

si je ne met que le 2, c'est bon.

Y a t'il une manip particulière pour utiliser l'uart1?

Je joint le bout de code et le message envoyé par le moniteur.

Merci de votre attention

#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"};
char mois[12][12] = {"Janvier", "Fevrier", "Mars", "Avril", "Mai", "juin", "Juillet",
                     "Aout" , "Septembre", "Octobre", "Novembre", "Decembre"
                    };

//================================================AFFI DATE HEURE VERS NEXTION ======================================
void affidate() {

  DateTime now = rtc.now(); //get the current date-time

  Serial2.print(F("Accueil.t14.txt=\""));
  Serial2.print(daysOfTheWeek[now.dayOfTheWeek()]);
  Serial2.print(F("\""));
  endnextion();

  Serial2.print(F("Accueil.t16.txt=\""));
  Serial2.print(now.day(), DEC);
  Serial2.print(F("\""));
  endnextion();

  Serial2.print(F("Accueil.t17.txt=\""));
  Serial2.print(mois[now.month()]);
  Serial2.print(F("\""));
  endnextion();

  Serial2.print(F("Accueil.t18.txt=\""));
  Serial2.print(now.hour(), DEC);
  Serial2.print(F("\""));
  endnextion();



  if (now.minute() < 10) {
    Serial2.print(F("Accueil.t21.txt=\"0"));
    Serial2.print(now.minute(), DEC);
    Serial2.print(F("\""));
    endnextion();
  }
  else {
    Serial2.print(F("Accueil.t21.txt=\""));
    Serial2.print(now.minute(), DEC);
    Serial2.print(F("\""));
    endnextion();
  }

}

void endnextion() {
  Serial2.write(0xFF);
  Serial2.write(0xFF);
  Serial2.write(0xFF);
}
//=========================================== SETUP =====================
void setup() {
  Serial.begin(115200);
  // Serial1.begin(9600);//cave
  Serial2.begin(19200); // Nextion

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  // rtc.adjust(DateTime(2021, 3, 26, 17, 38, 0));
}

void loop() {

  affidate();

}
Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x40081821  PS      : 0x00060530  A0      : 0x800d2ac0  A1      : 0x3ffb1ec0  
A2      : 0x00000010  A3      : 0x00000001  A4      : 0x00000000  A5      : 0x00000001  
A6      : 0x00060520  A7      : 0x00000000  A8      : 0x3f405880  A9      : 0x22ac0228  
A10     : 0xacab21e2  A11     : 0x0000004c  A12     : 0x00060520  A13     : 0x00000001  
A14     : 0x00060523  A15     : 0x00000000  SAR     : 0x00000016  EXCCAUSE: 0x0000001c  
EXCVADDR: 0xacab21e2  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  

Backtrace: 0x40081821:0x3ffb1ec0 0x400d2abd:0x3ffb1ee0 0x400d2eba:0x3ffb1f00 0x400d1f86:0x3ffb1f40 0x400d0cc7:0x3ffb1f80 0x400d2523:0x3ffb1fb0 0x400889d9:0x3ffb1fd0

Rebooting...
ets Jun  8 2016 00:22:57

Bonjour

Dans ton extrait de code ( :frowning: ) on ne voit pas sur quelles broches tu as choisi de faire déboucher les RX TX de Serial1.

Serial1 utilise l'UART1 ... mais il reste à indiquer sur quelles broches l'UART1 sort de la puce.
(=flexibilité, pas de broche imposée) Quand on ne précise pas les broches que les Uarts1 et 2 doivent utiliser le fonctionnement n'est pas garanti.

Voir ici un exemple d'utitlisation de Serial1 et Serial2 : ESP32 Hardware Serial2 Example | Circuits4you.com

D'autre part dans le message d'erreur tu as le backtrace qui, une fois analysé , te dira où en était le code au moment du plantage . pour cela il faut installer un petit utilitaire de décodage de backtrace :

Bonjour

merci pour ta réponse rapide

Je vais essayer ça.

Bon Dimanche

C'est bon

Pas encore essayé la com en réel, mais ça ne plante plus.

Encore merci

+1 Karma

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.