开发环境

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

Arduino

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

// TODO

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 扩展插件

// TODO

配置 ESP-IDF 插件

ctrl + shift + P > Configure ESP-IDF Extension

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

idfpeizhi1.png

idfhjpz2

idfhjpz3

等待其完成即可

hjpz4

切换版本

下载其他的 ESP-IDF 版本

idfpeizhi1.png

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

idfqhbb2

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

idfhjpz3

如下则表示配置成功

hjpz4

配置环境变量

等加载完成后,我们需要配置下该版本的环境变量,这里注意我们使用哪个版本就配置哪个版本的环境变量

这里设置的路径就是上面我们设置的安装路径

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 不识别),所以这里报错并不影响程序的编译运行;

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 目录重试即可