文章目录
- 目的
- 开发环境搭建
- 程序下载测试
- 使用VS Code进行开发
- 批量烧录固件到模块中
- 总结
目的
在之前的文章 《使用Arduino开发ESP32(01):开发环境搭建》
中介绍了使用Arduino开发ESP32的开发环境搭建内容,只不过当时的 Arduino core for the ESP32
是 v1
版本的。现在更新到 v2
版本后有一些改动,同时 Arduino IDE
也有改动,所以这里就对当前情况下的开发环境搭建做个记录。
Arduino core for the ESP32
项目地址:https://github.com/espressif/arduino-esp32
项目
ESP32 Arduino Core
文档:https://docs.espressif.com/projects/arduino-esp32/en/latest/index.html
开发环境搭建
开发环境搭建官方也有文档介绍:https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html
这里介绍在 Windows
上使用 Arduino IDE
搭建开发环境的方式。
下载安装 Arduino IDE
(当前版本为 2.1.1
):
https://www.arduino.cc/en/software
初次安装完成打开后可能会下载安装一堆库和驱动等。
安装完成后在开发板管理中搜索ESP32直接就可以找到开发板数据包(当前版本为 2.0.11
)进行安装:
如果搜索不到开发板数据包的话可以在 File > Preferences > Settings > Additional boards manager URLs
中添加下面的数据包链接后重启软件再试:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
因为网络原因,安装非常耗时:
如果安装困难请参考下面文章:
《Arduino core for the ESP32 安装失败问题处理方法》https://blog.csdn.net/Naisu_kun/article/details/114582503
程序下载测试
选择对应的开发板或者模块,选择之后可以进行进一步的设置:
新建 test
文件夹,其中新建 test.ino
文件(主文件名必须和文件夹名称一样),文件内容与程序测试如下图:
使用VS Code进行开发
使用 Arduino IDE
开发对于小的Demo还行,项目稍大的话就不太方便了,可以使用 VS Code
进行开发,具体的使用可以参考下面文章:
《使用VS Code开发Arduino》https://blog.csdn.net/Naisu_kun/article/details/120201633
需要注意的是目前版本下默认就会推荐使用 arduino-cli
(
Arduino IDE 2.1.1
、 VSCode 1.81.1
、 Arduino扩展v0.6.0
),安装扩展重启软件打开项目时会进行提示,也可以手动进行配置:
批量烧录固件到模块中
批量烧录固件到模块中内容可以参考 《使用Arduino开发ESP32(01):开发环境搭建》 文章中同名章节。
稍稍有一点需要注意的是之前文章中介绍的对于各块内容的查找位置其实是有点问题的。根据配置不同理论上是会生成不同的固件的,所有固件都会在 Arduino IDE
编译的项目的临时文件夹下,可以去其中找到相关内容,问题是临时目录名称是不固定的,随意查找需要一点经验。
但现在如果使用 VS Code
进行开发,在项目目录下的 .vscode
目录中的 arduino.json
文件中添加了 "output": "./build"
内容。那么编译生成的所有内容就会在项目目录下 build
目录中:
需要注意的是 boot_app0.bin
文件在 用户目录\AppData\Local\Arduino15\packages\esp32\hardware\esp32\版本号\tools\partitions
下:
几个文件与其对应烧录位置如下会随着不同的模块不同的Flash配置等有差异,可以通过 Arduino IDE
下载程序时输出的日志来获取(根据文件大小来分辨):
有了上面信息之后就可以使用乐鑫官方的 Flash 下载工具
进行下载了:
https://www.espressif.com.cn/zh-hans/support/download/other-tools 。
这个工具也可以把几块内容合并为一块内容:
合并后的固件烧录地址通常为0。
总结
Arduino ESP32 v2
和 v1
版本开发环境搭建上来说基本没啥太大区别。