开发环境

ESP32 是一款功能强大的微控制器,支持多种开发环境,主要包括 Arduino IDEESP-IDFMicroPython。这些开发环境各有优势,开发者可以根据项目需求和个人技能选择合适的工具进行开发。

Arduino

Arduino IDE 是最简单和最受欢迎的开发环境之一,它使得开发者能够使用 Arduino 编程语言(基于 C/C++)来编写和上传代码到 ESP32。通过安装相应的 ESP32 开发板支持包,用户可以在 Arduino IDE 中轻松开发 ESP32 项目。

ESP-IDF

ESP-IDFEspressif 官方为 ESP32 系列提供的原生开发框架,适用于开发更复杂、定制化的应用。ESP-IDF 是一个功能完整的 SDK,支持 Wi-Fi、蓝牙、低功耗操作等高级功能,并允许直接控制硬件。

ESP-IDF独立于项目以外,通过环境变量引导编译与链接,ESP-IDF 与项目工程分离

项目工程编译与链接必须依赖ESP-IDF,项目工程依赖于ESP-IDF

环境搭建

下载

下载 ESP-IDF 的安装包,该安装包会安装一系列需要的组件:

  • 内置的 Python
  • 交叉编译器
  • OpenOCD
  • CMakeNinja 编译工具
  • ESP-IDF

安装

傻瓜式安装即可,注意安装步骤中的“安装前检查”和“完全安装”。
弹出如下两个终端表示安装成功:

azcg

配置环境变量

安装成功后检查如下环境变量是否添加成功,如果没有就手动添加

mlhhjpz1

mlhhjpz2

测试是否可用

1.拷贝 Espressif\Espressif\frameworks\esp-idf-v5.3.2\examples\get-started 下的 sample_project 文件到桌面

以管理员身份运行 ESP-IDF 5.3 CMD ,cd 到 sample_project 目录下执行 idf.py build

生成如下命令后说明编译成功

csky

生成后最关键的是如下三个文件:

sample_project\build 下的 main.bin

sample_project\build\bootloader 下的 bootloader.bin

sample_project\build\partition_table 下的 partition_table.bin 三个文件

相关命令

// TODO

VSCode

在上面的环境搭建中,相当于我们配置死了某个具体版本的 ESP-IDF 库,如果我们确实要使用这个版本就没有问题,但是如果我们需要使用其他版本的 ESP-IDF 库就不行了,所以我们在使用 VSCode 进行开发时候,可以忽略上面的环境搭建,直接在 VSCode 中进行环境搭建

配置

在 VSCode 中安装 ESP-IDF 扩展插件

配置 ESP-IDF 插件

ctrl + shift + P > Configure ESP-IDF Extension

这里可以选择我们之前下载好的 ESP-IDF 官方库,如果没有下载可以直接看切换版本章节

idfpeizhi1.png

idfhjpz2

idfhjpz3

等待其完成即可

hjpz4

切换版本

下载其他的 ESP-IDF 版本

idfpeizhi1.png

这里需要指定全新的安装目录,记住这两个目录后面要设置环境变量用。

idfqhbb2

上一步完成后要进行第二步工具下载

idfhjpz3

如下则表示配置成功

hjpz4

配置环境变量

等加载完成后,我们需要配置下该版本的环境变量,这里注意我们使用哪个版本就配置哪个版本的环境变量
这里设置的路径就是上面我们设置的安装路径(如果是直接下载 VSCode 的插件不配置也可以)

idfhjblpz

基于模板创建新项目

打开 VSCode 先进入一个空的文件夹
ctrl + shift + p 选择 Create Project from Extension Template

idfxjxm1

选择工程存放目录

xzgcml

选择工程模板

xzgcmb

如果上述步骤都没有问题就可以看到如下界面

wcym

对于下面这一列 Cmake 命令列表如果发现不显示,则需要检查下环境变量配置是否正确;

然后点击工具条中的构建项目即可编译完成。

如果 VSCode 中还安装了 Cmake-Tools 插件,那么在下面的 Cmake 工具条中会提示三个错误一个警告,这是由于 ESP-IDF 与 Cmake-Tools 插件冲突所致,Cmake-Tools 会报错找不到 ESP32 编译所需要的一些工具,因为 ESP-IDF 使用的是自己的环境变量(Cmake-TOOls 不识别),所以这里报错并不影响程序的编译运行;

新建项目

ctrl + shift + p 选择 New Project

xjxm

选择要使用框架版本

sykj

指定 MCU 版本、工程名称、工程路径

zdpz

选择工程所使用的模板

xzgzmb

使用此模板创建项目

mbcj

MicroPython

MicroPython 固件下载地址

固件烧录

gjsl

gsrm

esptool

一个基于 Python 的、开源的、独立于平台的实用程序,用于与 Espressif 芯片中的 ROM 引导加载程序进行通信。

esptools1

保证可以正常连接

esptools2

esptools3

问题

一、测试时报错如下

lld: error: unable to find library -lunwind
lld: error: unable to find library -lunwind
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

说明在执行 idf.py build 时候没有以管理员身份运行。

二、配置环境时报错如下

error2

删除 d:\Tools\SDK\ESP32\Espressif\Espressif\tools\ 目录下的 idf-get 和 idf-python 目录重试即可

三、提示缺少 compile_commands.json 文件

error3

ctrl + shift + P –> “ESP-IDF: 设置乐鑫设备目标”,选择目标设备(如 esp32, esp32s2 等)即可。