Serial monitor problème

Hello ce code fonctionne parfaitement sur WOKWI.
Par contre impossible d obtenir un résultat dans le serial monitor quand je le télécharge sur l'esp32....

struct __attribute__((packed)) t_message {
  byte adresse;
  byte vitesse;
  byte cksum;
} unMessage;

inline void cCksum(t_message &unMessage) {
  unMessage.cksum = unMessage.adresse ^ unMessage.vitesse;
}

void envoyer(t_message &unMessage) {
  Serial.println(F("------------"));
  cCksum(unMessage); // on calcule le check sum juste avant l’émission
  Serial.write((const uint8_t*) &unMessage, sizeof unMessage);
  Serial.println();

  Serial.println(F("j'ai envoyé"));
  const uint8_t* pointeurMemoire = (const uint8_t*) &unMessage;

  for (int j = 0; j < sizeof unMessage; j++)   {
    Serial.print(F("0b"));
    for (int i = 7; i >= 0; i--) Serial.print(bitRead(*(pointeurMemoire + j), i));
    Serial.print(F(" "));
  }
  Serial.println();
}

void setup() {
  Serial.begin(115200); // 

  unMessage.adresse = 'A';
  unMessage.vitesse = 'B';
  envoyer(unMessage);

  unMessage.adresse = 'X';
  unMessage.vitesse = 'Y';
  envoyer(unMessage);
}


void loop() {}

Si vous rajoutez un print d’un message quelconque juste après le begin, est ce que vous le voyez ?

Bonjour il sort des des points d'interrogation à l'envers

Bonjour El Gringo !

Voici mes résultats :

AB
j'ai envoyé
0b01000001 0b01000010 0b00000011 
------------
XY
j'ai envoyé
0b01011000 0b01011001 0b00000001 

Peut-être que le débit en bauds de votre moniteur série n'est pas identique à celui de votre code ? Ci-dessous, j'ai mon Serial Monitor réglé (à tort) sur 9600

⸮H⸮⸮⸮H⸮------------

j ai fait un "réparer encodage et recharger". les caractères spéciaux ne s'affichent plus. rien n'apparait avec le serial.print apres begin. dans le loop par contre cela fonctionne bien.

Bonjour xfpd
mon débit est bien sur 115200.
c'est à ni rien comprendre
dans le loop le serial.print fonctionne

en rebootant la carte esp32 cela fonctionne mais je suis obligé de la faire tout le temps. etrange non?

ci dessous le fill:

07:02:34.226 -> ets Jun 8 2016 00:22:57
07:02:34.226 ->
07:02:34.226 -> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
07:02:34.226 -> flash read err, 1000
07:02:34.226 -> ets_main.c 371
07:02:34.601 -> ets Jun 8 2016 00:22:57
07:02:34.601 ->
07:02:34.601 -> rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
07:02:34.601 -> configsip: 0, SPIWP:0xee
07:02:34.601 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
07:02:34.601 -> mode:DIO, clock div:1
07:02:34.601 -> load:0x3fff0018,len:4
07:02:34.601 -> load:0x3fff001c,len:1044
07:02:34.601 -> load:0x40078000,len:10124
07:02:34.601 -> load:0x40080400,len:5856
07:02:34.648 -> entry 0x400806a8
07:02:34.742 -> ------------
07:02:34.742 -> AB
07:02:34.742 -> j'ai envoyé
07:02:34.742 -> 0b01000001 0b01000010 0b00000011
07:02:34.742 -> ------------
07:02:34.742 -> XY
07:02:34.742 -> j'ai envoyé
07:02:34.742 -> 0b01011000 0b01011001 0b00000001

Les points d'interrogation à l'envers sont une inadéquation du débit en bauds. Il démarre probablement à 9600 et envoie des données tronquées à votre moniteur série jusqu'à ce que votre code définisse le débit en bauds sur 115200. Peut-être mettre votre code à 9600?

j ai cette erreur la > flash read err, 1000
aucune idée pour la résoudre
j ai re installé la carte
pas de changement

=> tu sais comment je peux faire cela?

To add to WiFive's comment, this error implies that the ROM bootloader can't find the software bootloader at offset 0x1000.

This should be fixed via "make flash". The only time it won't is if flash encryption is accidentally enabled, or if secure boot is enabled (because this option means "make flash" won't flash the bootloader).

What's the full output of "make flash" when you run this? Do you see the bootloader being flashed at offset 0x1000?

It could also imply a power problem, if the SPI flash chip is browning out (either because MTDI pin has selected 1.8V mode, or because the 3.3V rail is drooping.)

j ai essayé sous environnement Mac et cela fonctionne!! par contre sous windows non. j ai cette erreur. si quelqu'un sait comment fixer cela!! merci

Peut être que l’alimentation usb sur PC n’est pas assez bonne ?

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