跳到主要内容

ESP-IDF

本章节包含以下部分,请按需阅读:

ESP-IDF 入门教程

初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置 ESP-IDF 开发环境

请参考 安装 ESP-IDF 开发环境

信息

对于 ESP32-C6-DEV-KIT-N8 开发板,需要使用 ESP-IDF V5.1.1 以上版本。

备注

以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明

安装 ESP-IDF 开发环境

  1. 前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。

    在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你要安装的版本。

    下载 EIM 和整合包

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

    下载 EIM 和整合包2

    请耐心等待两个文件下载完成。

  2. 下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)

    启动后,可在右上角将界面语言切换为中文。

    切换 EIM 语言

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

    自动检测整合包

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

    选择安装路径
  3. 当看到如下界面时,表示 ESP-IDF 已安装成功。

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

    用 ESP-IDF 安装管理器安装驱动

安装 Visual Studio Code 与 ESP-IDF 扩展

  1. 下载并安装 Visual Studio Code

  2. 安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。

  3. 在 VS Code 中,点击侧边活动栏中的 扩展图标 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。

  4. 在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

    在 VS Code 中搜索并安装 ESP-IDF 扩展

  5. ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。

示例程序

Hello Word

官方示例路径:get-started -> hello_world

示例效果:在 TERMINAL 窗口以 10 秒间隔输出 Hello world!

软件操作

  • 根据上方教程创建官方示例 hello_world

  • 程序兼容 ESP32-C6,无需修改程序内容即可使用

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

GPIO

官方示例路径:peripherals -> gpio -> generic_gpio

示例效果:LED 以 1 秒间隔进行闪烁

硬件连接

ESP32-C6LED
GPIO18(或 GPIO19)LED+
GNDLED-

软件操作

  • 根据上方教程创建官方示例 generic_gpio

  • 程序兼容 ESP32-C6,无需修改程序内容即可使用

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 右键,进入 GPIO 定义位置

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 实际处理的 GPIO 为 GPIO18、GPIO19

    ESP32-C6-DEV-KIT-N8-idf-helloworld

RGB

官方示例路径:get-started -> blink

示例效果:板载 RGB 灯珠以 1 秒间隔进行闪烁

软件操作

  • 根据上方教程创建官方示例 blink
  • 程序兼容 ESP32-C6,无需修改程序内容即可使用
  • 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

    ESP32-C6-DEV-KIT-N8-idf-helloworld

UART

官方示例路径:peripherals -> uart-> uart_async_rxtxtasks

示例效果:短接 GPIO4 与 GPIO5 情况下进行 UART 的数据自收发

硬件连接

ESP32-C6ESP32-C6(同一块)
GPIO4GPIO5

软件操作

  • 根据上方教程创建官方示例 uart_async_rxtxtasks
  • 程序兼容 ESP32-C6,无需修改程序内容即可使用
  • 修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

I2C

官方示例路径:peripherals -> lcd-> i2c_oled

示例效果:点亮 0.96inch OLED (A),显示一段字符

硬件连接

0.96inch OLED (A)ESP32-C6
VCC3V3
GNDGND
DINGPIO3
CLKGPIO4
CSGND
D/CGND
RESGPIO9

软件操作

  • 根据上方教程创建官方示例 i2c_oled
  • 修改程序使之兼容 0.96inch OLED (A)

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 效果如下

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 可查看实际使用的 GPIO

    ESP32-C6-DEV-KIT-N8-idf-helloworld

SPI

官方示例路径:peripherals -> spi_master-> lcd

示例效果:在 2.4inch LCD Module 上动态显示图片

硬件连接

2.4inch LCD ModuleESP32-C6
VCC3V3
GNDGND
DINGPIO7
CLKGPIO6
CSGPIO10
D/CGPIO11
RESGPIO4
BLGPIO5

软件操作

  • 右键 VScode 图标,以管理员身份运行 VScode

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 跳转到定义位置

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 并宏定义 ESP32-C6 , CONFIG_IDF_TARGET_ESP32C6

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 修改 D/C 使用 IO,避开下载电路(原使用 GPIO9 改为 GPIO11)

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 修改背光

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 改为 gpio_set_level(PIN_NUM_BCKL, 1);

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 效果如下

    ESP32-C6-DEV-KIT-N8-idf-helloworld

Bluetooth

官方示例路径:bluetooth -> ble -> gatt_server

示例效果:ESP32-C6 与手机端蓝牙调试助手进行数据传输

软件操作

  • 在手机端安装 蓝牙调试助手
  • 根据上方教程创建官方示例 gatt_server
  • 程序兼容 ESP32-C6,无需修改程序内容即可使用
  • 蓝牙名称以及 UUID,蓝牙名称为 ESP_GATTS_DEMO

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 连接成功效果如下

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • ESP32-C6 接收到数据

    ESP32-C6-DEV-KIT-N8-idf-helloworld

WIFI

官方示例路径:wifi-> getting_started-> station

示例效果:ESP32-C6 连接 WIFI

软件操作

  • 根据上方教程创建官方示例 station
  • 修改程序内容,使其连接上所需 WiFi
  • 进入 Kconfig.projbuild 文件

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 将原本的 WiFi SSIDWiFi Password 修改为要连接的 WiFi 信息

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 右键转到定义

    ESP32-C6-DEV-KIT-N8-idf-helloworld

  • 可看到为此前设置的值

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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 口,可通过设备管理器查看),点击编译并烧录即可运行程序

    ESP32-C6-DEV-KIT-N8-idf-helloworld

软件操作 2

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld

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

    ESP32-C6-DEV-KIT-N8-idf-helloworld