🛠 Console sur l'USB-C natif (USB-Serial/JTAG)
Objectifs
Contrairement à l'ESP32 classique, le ESP32-C3 intègre un contrôleur USB-Serial/JTAG : le port USB-C de la carte parle directement avec la puce, sans pont UART externe (CP2102/CH340). Vous apprendrez à utiliser Serial sur cet USB natif, à ne pas bloquer quand aucun terminal n'est ouvert, et vous entrapercevrez le débogage JTAG par le même port.
Matériel
- 1 carte ESP32-C3 avec USB-C natif
- 1 câble USB-C data
- Terminal série (Arduino IDE, PuTTY ou « screen »)
Code complet
void setup {
Serial.begin(115200); // sur C3 : Serial = USB-Serial/JTAG
Serial.setTxTimeoutMs(0); // ne JAMAIS bloquer si terminal ferme
delay(1000); // laisse le temps d'ouvrir le terminal
Serial.println(F("Bonjour depuis l'USB natif du ESP32-C3"));
Serial.printf("Coeurs : %d, flash : %u Mo\n",
1, ESP.getFlashChipSize / 1048576);
}
void loop {
if (Serial.available) {
String s = Serial.readStringUntil('\n');
s.trim;
Serial.println(s); // echo de ce que vous tapez
}
delay(2);
}
Vérification attendue
Ouvrir le terminal à 115200 bauds puis réinitialiser la carte affiche le message de bienvenue et « Coeurs : 1, flash : 4 Mo ». Tout ce que vous tapez est renvoyé (echo), en passant par le même câble USB-C que le flash.
Erreurs fréquentes
- Aucune sortie visible : sans terminal ouvert au démarrage, l'USB-Serial/JTAG n'a pas d'hôte ; setTxTimeoutMs(0) évite que le programme reste figé sur les printf.
- Double usage du port : pendant un flash ou une session OpenOCD (JTAG), le port série est occupé ; fermer le terminal avant de reflasher.
- Penser que Serial = UART0 : sur les cartes C3 à puce additionnelle (DevKitM-1 avec CP2102), il faut choisir USB CDC On Boot dans le menu Outils pour basculer sur l'USB natif.
- Carte d'entrée de gamme sans USB natif câblé : vérifier que le connecteur est bien relié aux broches D+/D- de l'ESP32-C3.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht22.inoArduinooled-i2c.inoArduinoserveur-web.inoArduino