前言
Vscode
安装ESP-IDF
插件后,会在左下角生成一些按钮,用户可以点击实现配置、编译、下载、调试等功能。
但鉴于ESP-IDF
的Vscode
插件体验不是很好:不仅容易安装出错导致不能使用全部功能,编译速度也不如自带的ESP-IDF Command Prompt (cmd.exe)
。
所以在以后的开发中,Vscode
只用来 创建工程、编写和查看代码。编译、下载、监视端口 这些事就交给 ESP-IDF Command Prompt (cmd.exe)
。
下面使用 Vscode
插件,一键从SDK
的Demo
中创建新工程。
一 Vscode创建新工程
- 查看 - 命令面板(Ctrl+Shift+P)
- 输入
show examples projects
,点击。 - 点击弹出的
Use current ESP-ID
,使用本地SDK
。 - 最终显示这样的界面。左侧是
SDK
中的Demo
列表,右侧是Demo
的功能描述。 - 点击例程
blink
,点击Create project using example blin
。 - 选择一个存放的文件夹。
- 之后插件就会以
SDK
中的blink
为模板,自动创建一个新工程。blink.c
的功能很简单,配置Pin 5
为推挽输出IO
,以1s为间隔让灯在亮灭的状态间切换,并用串口打印状态。
二 Vscode IDF插件编译
- 左下角是插件提供的一些工具,功能为:
最后一个的功能是build + flash + monitor
。可以一键完成编译、下载、监控端口,写完代码自己去喝茶等它自动完成。 - 试下编译速度,点击
build
。我看了下时间花了将近一分半。
后来又试了下用ESP-IDF Command Prompt (cmd.exe)
来编译,速度快了3、4倍。所以如果嫌弃Vscode插件自带编译速度慢,或者是Vscode插件安装不完整,导致左下角build、flash、monitor
不能使用的,推荐使用ESP-IDF Command Prompt (cmd.exe)
来编译。
三 ESP-IDF Command Prompt (cmd.exe)编译
Vscode
的ESP-IDF
插件在配置过程中,有很大概率出现乱码和Error,导致左下角build、flash、monitor
不能使用。不要慌,可以用ESP-IDF Command Prompt (cmd.exe)
来替代,况且这个的编译速度实测要比Vscode插件快3、4倍
,这么香的东西没理由不用啊。
- 例如我的这台电脑。可以
从SDK中创建工程
,但不能使用插件提供的编译、下载
等功能。
那该怎么编译呢?- 还记得桌面上生成的那个快捷方式嘛。
- 切换到新建的
blink
工作目录,清理工程。 - 编译。
idf.py build
。 - 计了下时,只花了
30秒
左右。比Vscode插件快好几倍,强烈推荐用这个命令行去编译开发
。
四 烧录下载
- 烧录前先配置模组的
flash
大小:
输入命令idf.py menuconfig
打开配置界面,进入Serial flasher config
,按需将Flash size
改为自己的大小。比较常用的两个模组:安信可ESP-32S
、乐鑫ESP32-WROOM-32
,flash都是4MB
。连续按Esc退出,按y保存。 - 开发板连接电脑。
设备管理器
查看开发板的端口号COM9
。 - 使用
idf.py -p COM9 flash
下载到ESP32开发板。 - 因为刚刚重新配置了
flash size
,需要重新编译,等待烧录完成。 - 如果端口号选择错误,会出现如下错误。
重新检查端口号有设备连接后再次执行
。
五 监视端口
- 输入命令
idf.py -p COM9 monitor
,打开监视器,显示串口COM9的通讯信息。
现象与代码一致,以1s为间隔让灯在亮灭的状态间切换,并用串口打印状态。
六 终端命令汇总
功能 | 命令 |
配置界面 | idf.py menuconfig |
清理工程 | idf.py clean |
编译 | idf.py build |
烧录下载 | idf.py -p PORT flash |
监视端口 | idf.py -p PORT monitor |
擦除 | idf.py (-p PORT) erase_flash |
编译+烧录+监视 | idf.py (-p PORT) build flash monitor |