野生程序员
发布于 2022-08-25 / 588 阅读 / 0 评论 / 0 点赞

乐鑫ESP32开发 Vscode创建新工程,编译,下载烧录,监视端口,点亮一个LED

前言

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

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

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

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

一 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)编译

VscodeESP-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 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

评论