前言


Vscode安装ESP-IDF插件后,会在左下角生成一些按钮,用户可以点击实现配置、编译、下载、调试等功能。

 但鉴于ESP-IDFVscode插件体验不是很好:不仅容易安装出错导致不能使用全部功能,编译速度也不如自带的ESP-IDF Command Prompt (cmd.exe)

 所以在以后的开发中,Vscode只用来 创建工程、编写和查看代码。编译、下载、监视端口 这些事就交给 ESP-IDF Command Prompt (cmd.exe)

 下面使用 Vscode插件,一键从SDKDemo中创建新工程。


一 Vscode创建新工程


  • 查看 - 命令面板(Ctrl+Shift+P)
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_单片机

  • 输入show examples projects,点击。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_单片机_02

  • 点击弹出的Use current ESP-ID,使用本地SDK
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_开发板_03

  • 最终显示这样的界面。左侧是SDK中的Demo列表,右侧是Demo的功能描述。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_单片机_04

  • 点击例程blink,点击Create project using example blin
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_物联网_05

  • 选择一个存放的文件夹。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_开发板_06

  • 之后插件就会以SDK中的blink为模板,自动创建一个新工程。
    blink.c的功能很简单,配置Pin 5为推挽输出IO,以1s为间隔让灯在亮灭的状态间切换,并用串口打印状态。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_开发板_07


二 Vscode IDF插件编译


  • 左下角是插件提供的一些工具,功能为:
    最后一个的功能是 build + flash + monitor。可以一键完成编译、下载、监控端口,写完代码自己去喝茶等它自动完成。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_开发板_08

  • 试下编译速度,点击 build。我看了下时间花了将近一分半。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_物联网_09

 后来又试了下用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)编译


VscodeESP-IDF插件在配置过程中,有很大概率出现乱码和Error,导致左下角build、flash、monitor不能使用。不要慌,可以用ESP-IDF Command Prompt (cmd.exe)来替代,况且这个的编译速度实测要比Vscode插件快3、4倍,这么香的东西没理由不用啊。

  • 例如我的这台电脑。可以从SDK中创建工程,但不能使用插件提供的编译、下载等功能。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_单片机_10



  • 那该怎么编译呢?
  • 还记得桌面上生成的那个快捷方式嘛。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_嵌入式_11

  • 切换到新建的blink工作目录,清理工程。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_嵌入式_12

  • 编译。idf.py build
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_物联网_13

  • 计了下时,只花了30秒左右。比Vscode插件快好几倍,强烈推荐用这个命令行去编译开发
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_物联网_14


四 烧录下载


  • 烧录前先配置模组的flash大小:
    输入命令idf.py menuconfig打开配置界面,进入Serial flasher config,按需将Flash size改为自己的大小。比较常用的两个模组:安信可ESP-32S乐鑫ESP32-WROOM-32,flash都是4MB。连续按Esc退出,按y保存。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_esp32_15

  • 开发板连接电脑。设备管理器查看开发板的端口号COM9
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_单片机_16

  • 使用idf.py -p COM9 flash下载到ESP32开发板。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_开发板_17

  • 因为刚刚重新配置了flash size,需要重新编译,等待烧录完成。
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_单片机_18

  • 如果端口号选择错误,会出现如下错误。重新检查端口号有设备连接后再次执行
  • VSCODE Esp32 lvgl仿真器 vscode开发esp32_物联网_19


五 监视端口


  • 输入命令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

擦除整个flash并烧录下载

idf.py (-p PORT) erase_flash

编译+烧录+监视

idf.py (-p PORT) build flash monitor