ESP-IDF
本章节包含以下部分,请按需阅读:
ESP-IDF 入门教程
初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程。
- 第0节 认识 ESP32
- 第1节 搭建环境
- 第2节 运行实例
- 第3节 创建项目
- 第4节 使用组件
- 第5节 调试程序
- 第6节 FreeRTOS
- 第7节 驱动外设
- 第8节 Wi-Fi 编程
- 第9节 BLE 编程
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
配置 ESP-IDF 开发环境
对于 ESP32-C6-Pico 开发板,需要使用 ESP-IDF V5.1.1 以上版本。
以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明。
安装 ESP-IDF 开发环境
-
前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。
在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你要安装的版本。

确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 ESP-IDF 离线整合包(.zst),另一个是 ESP-IDF 安装器(.exe)。

请耐心等待两个文件下载完成。
-
下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)。
启动后,可在右上角将界面语言切换为中文。

安装工具会自动检测同一目录下是否存在离线整合包。点击 从存档安装。

接下来,选择安装路径。建议使用默认路径;若需自定义,请确保路径中不包含中文或空格。确认无误后,点击 开始安装。

-
当看到如下界面时,表示 ESP-IDF 已安装成功。

-
建议同时安装驱动程序。点击 完成安装,然后点击 安装驱动程序。

安装 Visual Studio Code 与 ESP-IDF 扩展
-
下载并安装 Visual Studio Code。
-
安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。
-
在 VS Code 中,点击侧边活动栏中的
扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。
-
在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

-
当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。
示例程序
Hello Word
官方示例路径:get-started -> hello_world
示例效果:在 TERMINAL 窗口以 10 秒间隔输出 Hello world!
软件操作
- 根据上方教程创建官方示例 hello_world
- 程序兼容 ESP32-C6,无需修改程序内容即可使用
- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

GPIO
官方示例路径:peripherals -> gpio -> generic_gpio
示例效果:LED 以 1 秒间隔进行闪烁
硬件连接
| ESP32-C6 | LED |
|---|---|
| GPIO18(或 GPIO19) | LED+ |
| GND | LED- |
软件操作
- 根据上方教程创建官方示例 generic_gpio
- 程序兼容 ESP32-C6,无需修改程序内容即可使用
- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

- 进入程序宏定义位置,查看实际处理的 GPIO

- 右键,进入 GPIO 定义位置

- 实际处理的 GPIO 为 GPIO18、GPIO19

RGB
官方示例路径:get-started -> blink
示例效果:板载 RGB 灯珠以 1 秒间隔进行闪烁
软件操作
- 根据上方教程创建官方示例 blink
- 程序兼容 ESP32-C6,无需修改程序内容即可使用
- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

UART
官方示例路径:peripherals -> uart-> uart_async_rxtxtasks
示例效果:短接 GPIO4 与 GPIO5 情况下进行 UART 的数据自收发
硬件连接
| ESP32-C6 | ESP32-C6(同一块) |
|---|---|
| GPIO4 | GPIO5 |
软件操作
- 根据上方教程创建官方示例 uart_async_rxtxtasks
- 程序兼容 ESP32-C6,无需修改程序内容即可使用
- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

- 根据使用的 GPIO 进行硬件连接

- 可转到定义文件中查看实际使用的 GPIO(选中 GPIO_NUM_4 -> 右键 -> Go to Definition)

I2C
官方示例路径:peripherals -> lcd-> i2c_oled
示例效果:点亮 0.96inch OLED (A),显示一段字符
硬件连接
| 0.96inch OLED (A) | ESP32-C6 |
|---|---|
| VCC | 3V3 |
| GND | GND |
| DIN | GPIO3 |
| CLK | GPIO4 |
| CS | GND |
| D/C | GND |
| RES | GPIO9 |
软件操作
- 根据上方教程创建官方示例 i2c_oled
- 修改程序使之兼容 0.96inch OLED (A)

- 适配 0.96inch OLED (A),定义 RES 引脚为 GPIO9

- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

- 效果如下

- 可查看实际使用的 GPIO

SPI
官方示例路径:peripherals -> spi_master-> lcd
示例效果:在 2.4inch LCD Module 上动态显示图片
硬件连接
| 2.4inch LCD Module | ESP32-C6 |
|---|---|
| VCC | 3V3 |
| GND | GND |
| DIN | GPIO7 |
| CLK | GPIO6 |
| CS | GPIO0 |
| D/C | GPIO1 |
| RES | GPIO4 |
| BL | GPIO5 |
软件操作
- 右键 VScode 图标,以管理员身份运行 VScode

- 根据上方教程创建官方示例 lcd
- 修改程序使之兼容 2.4inch LCD Module

- 跳转到定义位置

- 当前使用的为 ESP32-C6, 屏蔽其他芯片定义

- 并宏定义 ESP32-C6 , CONFIG_IDF_TARGET_ESP32C6

- 修改 D/C 使用 IO
- 进入 spi_master_example_main.c 的第 60 行

- 修改 D/C 使用 IO,选择现有 IO(原使用 GPIO10 与 GPIO9 改为 GPIO0 与 GPIO1)

- 修改背光

- 改为 gpio_set_level(PIN_NUM_BCKL, 1);

- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

- 效果如下

Bluetooth
官方示例路径:bluetooth -> ble -> gatt_server
示例效果:ESP32-C6 与手机端蓝牙调试助手进行数据传输
软件操作
- 在手机端安装 蓝牙调试助手
- 根据上方教程创建官方示例 gatt_server
- 程序兼容 ESP32-C6,无需修改程序内容即可使用
- 蓝牙名称以及 UUID,蓝牙名称为 ESP_GATTS_DEMO

- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

- 在手机端连接 ESP_GATTS_DEMO 蓝牙设备

- 连接成功效果如下

- 根据程序中 UUID 的值可知为下方两个服务器,选择其中一个进行上行发送

- ESP32-C6 接收到数据

WIFI
官方示例路径:wifi-> getting_started-> station
示例效果:ESP32-C6 连接 WIFI
软件操作
- 根据上方教程创建官方示例 station
- 修改程序内容,使其连接上所需 WiFi
- 进入 Kconfig.projbuild 文件

- 将原本的 WiFi SSID 与 WiFi Password 修改为要连接的 WiFi 信息

- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

- 可查看 **CONFIG_ESP_WIFI_SSID **的值
- 进入 **station_example_main.c **文件

- 右键转到定义

- 可看到为此前设置的值

Zigbee
官方示例 1 路径:Zigbee-> light_sample-> HA_on_off_switch
官方示例 2 路径:Zigbee-> light_sample-> HA_on_off_light
示例效果:两块 ESP32-C6,使用其中一块(烧录 HA_on_off_switch 程序)的 BOOT 按键控制另一块的 RGB 灯珠的亮灭
注:请先往一块烧录 HA_on_off_switch 程序,再往另一块烧录 HA_on_off_light 程序
软件操作 1
- 根据上方教程创建官方示例 HA_on_off_switch
- 程序兼容 ESP32-C6,无需修改程序内容即可使用
- 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

软件操作 2
- 根据上方教程创建官方示例 HA_on_off_light
- 程序兼容 ESP32-C6,无需修改程序内容即可使用
- 修改好 COM 口及驱动对象,点击编译并烧录即可运行程序 (需要等待片刻,让两块芯片建立连接)

- 若一直处于以下未连接的情况,则可能是由于这个设备有残留的其他网络信息,可以擦除设备信息 (擦除教程),再重新组网。
