ESP32 是一款功能强大的微控制器,支持多种开发环境,主要包括 Arduino IDE、ESP-IDF 和 MicroPython。这些开发环境各有优势,开发者可以根据项目需求和个人技能选择合适的工具进行开发。
Arduino
Arduino IDE 是最简单和最受欢迎的开发环境之一,它使得开发者能够使用 Arduino 编程语言(基于 C/C++)来编写和上传代码到 ESP32。通过安装相应的 ESP32 开发板支持包,用户可以在 Arduino IDE 中轻松开发 ESP32 项目。
// TODO
ESP-IDF
ESP-IDF 是 Espressif 官方为 ESP32 系列提供的原生开发框架,适用于开发更复杂、定制化的应用。ESP-IDF 是一个功能完整的 SDK,支持 Wi-Fi、蓝牙、低功耗操作等高级功能,并允许直接控制硬件。
ESP-IDF独立于项目以外,通过环境变量引导编译与链接,ESP-IDF 与项目工程分离
项目工程编译与链接必须依赖ESP-IDF,项目工程依赖于ESP-IDF
环境搭建
下载
下载 ESP-IDF 的安装包,该安装包会安装一系列需要的组件:
安装
傻瓜式安装即可,注意安装步骤中的“安装前检查”和“完全安装”。
弹出如下两个终端表示安装成功:
配置环境变量
安装成功后检查如下环境变量是否添加成功,如果没有就手动添加
测试是否可用
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
生成如下命令后说明编译成功
生成后最关键的是如下三个文件:
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 官方库,如果没有下载可以直接看切换版本章节
等待其完成即可
切换版本
下载其他的 ESP-IDF 版本
这里需要指定全新的安装目录,记住这两个目录后面要设置环境变量用。
上一步完成后要进行第二步工具下载
如下则表示配置成功
配置环境变量
等加载完成后,我们需要配置下该版本的环境变量,这里注意我们使用哪个版本就配置哪个版本的环境变量
这里设置的路径就是上面我们设置的安装路径
新建项目
VSCode 先进入一个空的文件夹
ctrl + shift + p 选择 Create Project from Extension Template
选择工程目录
选择工程模板
如果上述步骤都没有问题就可以看到如下界面
对于下面这一列 Cmake 命令列表如果发现不显示,则需要检查下环境变量配置是否正确;
然后点击工具条中的构建项目即可编译完成。
如果 VSCode 中还安装了 Cmake-Tools 插件,那么在下面的 Cmake 工具条中会提示三个错误一个警告,这是由于 ESP-IDF 与 Cmake-Tools 插件冲突所致,Cmake-Tools 会报错找不到 ESP32 编译所需要的一些工具,因为 ESP-IDF 使用的是自己的环境变量(Cmake-TOOls 不识别),所以这里报错并不影响程序的编译运行;
MicroPython
MicroPython 固件下载地址
固件烧录
esptool
一个基于 Python 的、开源的、独立于平台的实用程序,用于与 Espressif 芯片中的 ROM 引导加载程序进行通信。
保证可以正常连接
问题
一、测试时报错如下
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 时候没有以管理员身份运行。
二、配置环境时报错如下
删除 d:\Tools\SDK\ESP32\Espressif\Espressif\tools\ 目录下的 idf-get 和 idf-python 目录重试即可