Default assignment to special functions Some ESP32 devices default to assignment of the IO pins via the IO matrix to specific peripherals (e.g. ESP32S3 JTAG pins). Try using call gpio_reset_pin() on a problem pin before you configure it: Output drive capability Output pins can have the drive current capability adjusted using gpio_set_drive_capability() – see here.
JTAG pins Some ESP32 devices (e.g. ESP32S3) default to JTAG assignment of the IO pins via the IO matrix and the pins won’t work as general IO until you call gpio_reset_pin():
Sharing IO pins – UART You need the two UART pins available for programming use (if you’re not using the ESP32 USB interface) even if you want to use the JTAG interface (you need to fall back to the serial interface at times, its the default means of programming the ESP32). You can share them […]
Documentation https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/gpio.html Input Pins Combined method Individual functions method Output Pins Disable Pins