🛠 Console sur l'USB-C natif (USB-Serial/JTAG)
Objetivos
A diferencia del ESP32 clásico, el ESP32-C3 integra un controlador USB-Serial/JTAG: el puerto USB-C de la placa se comunica directamente con el chip, sin puente UART externo (CP2102/CH340). Aprenderás a usar Serial en este USB nativo, a no bloquear la ejecución cuando no hay ninguna terminal abierta, y vislumbrarás la depuración JTAG a través del mismo puerto.
Material
- 1 placa ESP32-C3 con USB-C nativo
- 1 cable USB-C de datos
- Terminal serie (Arduino IDE, PuTTY o «screen»)
Código completo
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);
}
Verificación esperada
Abrir la terminal a 115200 baudios y luego reiniciar la placa muestra el mensaje de bienvenida y «Núcleos: 1, flash: 4 MB». Todo lo que escribas se devuelve (eco), pasando por el mismo cable USB-C que se utiliza para el flasheo.
Errores frecuentes
- Ninguna salida visible: sin una terminal abierta al iniciar, el USB-Serial/JTAG no tiene host; setTxTimeoutMs(0) evita que el programa se quede bloqueado en los printf.
- Doble uso del puerto: durante un flasheo o una sesión de OpenOCD (JTAG), el puerto serie está ocupado; cierra la terminal antes de volver a flashear.
- Pensar que Serial = UART0: en las placas C3 con chip adicional (DevKitM-1 con CP2102), debes seleccionar USB CDC On Boot en el menú Herramientas para cambiar al USB nativo.
- Placa de gama de entrada sin USB nativo cableado: verifica que el conector esté correctamente conectado a los pines D+/D- del ESP32-C3.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht22.inoArduinooled-i2c.inoArduinoserveur-web.inoArduino