跳到主要内容

ESP-IDF 开发

本章节包含以下内容,请按需阅读:

ESP-IDF 入门教程

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

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

配置开发环境

备注

以下教程基于 Windows 开发环境,使用 VS Code 进行开发。

版本要求

ESP-IDF 从 v5.1 开始支持 ESP32-H2。安装 ESP-IDF 时请选择 v5.1 或更高版本。

请参考 微雪 ESP-IDF 入门教程 - 第 1 节 搭建环境 完成 ESP-IDF 开发环境配置。

运行乐鑫官方示例程序

请参考 微雪 ESP-IDF 入门教程 - 第 2 节 运行示例

固件烧录、Flash 擦除及下载模式操作请参阅 Flash 固件的烧录与擦除

示例程序

ESP-IDF 示例程序位于产品示例程序包的 ESP-IDF 目录中。

示例程序基础例程说明
01_Hello_World打印 Hello World
02_BlinkRGBRGB 灯呼吸效果闪烁变色
03_GetChipID读取芯片 ID
04_BLE手机蓝牙调试助手可搜索到 ESP32 设备,广播数据为 ESP32-H2
05_ieee802154_cli提供命令行,测试 IEEE 802.15.4
06_Zigbee两台设备分别作为 switch 和 light 进行 Zigbee 通信
07_UART短接 GPIO23/24 实现串口数据打印
08_1.83inch连接 1.83inch LCD Module 屏幕实现颜色循环测试、触摸功能测试和lvgl图形库显示

01_Hello_World

本示例演示 ESP32-H2-Zero 最基本的串口输出功能,程序启动后每十秒通过串口打印 Hello World!

硬件连接

使用 USB 线将开发板连接到电脑。

软件操作

  • 该示例兼容 ESP32-C6,无需修改示例代码。
  • 在 ESP-IDF 扩展中选择 ESP32-H2 目标芯片及开发板对应的串口,然后编译、烧录并打开串口监视器。串口号可在 Windows 设备管理器中查看。

运行效果

02_BlinkRGB

本示例演示板载 RGB 灯的呼吸效果,RGB 灯会闪烁并循环变色。

运行效果

03_GetChipID

本示例实现获取并打印 ESP32-H2 芯片的硬件信息,包括芯片型号、版本、核心数量以及芯片 ID。

运行效果

04_BLE

本示例将开发板设置为 BLE 广播,广播数据为 ESP32-H2,在手机蓝牙调试助手中可以搜索到设备。

参数配置

首先打开一个 ESP-IDF 终端

输入 idf.py menuconfig 进入到配置界面,然后跟随图片中选中的选项操作:

进入 Component config → Bluetooth,启用 Bluetooth,并将 Host 配置为 BLE 支持模式。

蓝牙模式

ESP32-H2 仅支持 Bluetooth LE,不支持经典蓝牙。请勿选择 Bluedroid - Dual-mode。Host 及控制器选项应以当前 ESP-IDF 版本中 ESP32-H2 可用的 BLE 配置为准。

运行效果

05_ieee802154_cli

本示例提供 IEEE 802.15.4 命令行,可通过串口终端输入命令进行收发和参数测试。

命令功能
channel -g / -s <n>获取/设置信道号
rx -r <0|1>开启/关闭接收模式
tx <bytes> / tx -l <len>发送 MAC 帧
txpower -g / -s <n>获取/设置发射功率
panid <id> / panid -g设置/获取 PAN ID
shortaddr <addr> / -g设置/获取短地址
extaddr <addr> / -g设置/获取扩展地址
promisc -e / -d / -g开启/关闭/查询混杂模式
coordinator -e / -d / -g开启/关闭/查询协调器模式
cca -g / -m <mode> / -v <val>获取/设置 CCA 模式和阈值
ed -d <duration>能量检测
pending管理 pending 地址表
reg -r / -w读写寄存器
esp154 -e / -d初始化/去初始化 802.15.4 子系统
restart软件复位
free / heap查看堆内存
help查看所有命令帮助

参数配置

该示例默认将 UART0 作为控制台输出,但开发板的 Type-C 接口在烧录时会同时占用该端口,导致冲突。建议在 ESP-IDF 终端中重新配置控制台输出通道。

首先打开 ESP-IDF 终端。

输入 idf.py menuconfig 进入配置界面,然后按下列路径操作:

Component config → ESP System Settings → Channel for console output

将控制台输出通道从 UART0 改为 USB Serial/JTAG Controller

运行效果

06_Zigbee

本示例演示 Zigbee 通信,需要两台设备,一台作为 switch,一台作为 light。

硬件要求

该示例需要两块 ESP32-H2 开发板。烧录 HA_on_off_switch 的开发板通过 BOOT 按键控制另一块开发板上的 RGB LED。

烧录顺序

先向一块开发板烧录 HA_on_off_switch,再向另一块开发板烧录 HA_on_off_light

参数配置

首先打开一个 ESP-IDF 终端

输入 idf.py menuconfig 进入到配置界面,然后跟随图片中选中的选项操作:

Component config → Zigbee → Configure the Zigbee device type

将准备烧录 switch 示例的开发板配置为 Zigbee Coordinator or Router device

将准备烧录 light 示例的开发板配置为 Zigbee End device

运行效果

在烧录 switch 示例的开发板上按下 BOOT 键,可控制 light 开发板的 RGB LED 亮灭。

  • light:

  • switch:

07_UART

本示例演示 UART 自发自收。使用跳线短接 GPIO23 与 GPIO24 后运行示例。

ESP32-H2-Zero-details-inter.jpg

运行效果

08_1.83inch

本示例演示了如何基于 ESP32-H2 开发板驱动 1.83inch Touch LCD Module 触控液晶模组,既实现了颜色循环测试与触摸功能测试,又预留了基于 LVGL 图形库的图片显示能力,支持通过左滑、右滑手势完成图片切换操作。

硬件连接

1.83inch Touch LCD ModuleESP32-H2-Zero
VCC3V3
GNDGND
LCD_DINGPIO2
LCD_CLKGPIO1
LCD_CSGPIO5
LCD_DCGPIO3
LCD_RSTGPIO4
LCD_BLGPIO24
TP_SDAGPIO25
TP_SCLGPIO22
TP_RSTGPIO10
TP_INTGPIO11

运行效果

修改项目 main.c 中的 DEMO_IMAGE_ALBUM 宏可切换两种演示模式:

  • #define DEMO_IMAGE_ALBUM 0 时:

    • LCD 颜色循环测试:

      LCD 颜色测试 1LCD 颜色测试 2LCD 颜色测试 3LCD 颜色测试 4
    • LCD 触摸测试:

  • #define DEMO_IMAGE_ALBUM 1 时:

    • LVGL 图片切换测试:

      LVGL 图片切换测试 1LVGL 图片切换测试 2LVGL 图片切换测试 3

文档反馈

如在使用过程中遇到问题,欢迎留言反馈。