开发基于 ESP XXX 微控制器应用,最简单的环境搭建方案是像 MicroPython、CircuitPython、NanoFramework 等,下载固件,直接开刷;或者基于 Arduino 的开发组件,安装起来都容易。不过,这些框架是经过封装的,就目前而言,它们的功能还不完善,功能上肯定没有乐鑫官方的 SDK 完整;当然了,也不是说这些框架不能用,只要能满足你的需求就可以用。

乐鑫官方的 SDK 支持 Eclipse 、VS Code 插件方式使用 IDE。对于咱们一路喜欢 VS 的伙伴来说,当然是用 VS Code 写代码舒服了。本来嘛,在VS Code 中,只要安装好 ESP - IDF 插件,然后运行 ESP-IDF: 配置 ESP-IDF 插件 就会自动下载 SDK 和工具。然而由于某些你懂的不可抗因素,这个方案是很难安装成功的。SDK 部分多折腾几次都能下载,但后面那十几个工具就没那么好运气了,老是失败。

经过老周的各种尝试,只有使用离线安装这一招最靠谱。打开 https://dl.espressif.com/dl/esp-idf/?idf=4.4

Windows 上还是很好弄的(Linux上可以手动下载.tar.gx,然后解压),上图中,点击页面中的 Offline installer,下载离线安装包,大概 1.5 G,对于现在的网速来说,不算大。

下载之后,直接运行。

下一步。

这里它会检查你的系统环境适不适合安装,如果没有问题,Next 安钮将可用。如果有问题,Apply Fixes 按钮可用,点一下让它自动修复问题。其实这里一般不会有大问题,可能会存在的就是文件名字符数据的限制,点击 Apply Fixes 按钮即可。然后点 Next。

版本当然选新的,安装目录这里最好改一下,这货很不懂事,居然默认安装到桌面上。

上一步选的目录是放 SDK 的,这一步选的是放 SDK 工具的目录,自己选一个吧,最好不要带空格,出错的概率达到 89.965%;也最好不要包含汉字,出错率达 92.333%。

这个地方基本上可以全部清空,如果你要用 Eclipse ,就选上吧。

这里让你核对一下你前面所选的参数是否正确,不符合你的要求的话,就返回去重来。

接着一路下一步,然后坐和等待。

最后这里,勾上这个选项,让杀毒软件跳过对编译时的文件扫描。

Python 是内置的,这个没办法,如果你安装了多套工具,比如 Thoony、Arduino IDE等,都会内置 Python,所以会多次重复安装。Python 这货也是个头疼事,如果硬盘空间不紧张,就随它去吧,因为这厮在版本兼容问题上也特严重,不同程序内置 Python 可能会减少许多问题。

然后干吗呢?对,环境变量,打开【设置】【系统】【关于】。

点击“高级系统设置”。

然后在打开的对话框中点击“环境变量”。

至于说配置用户级的环境变量还是机器级的环境变量,那随你便,如果电脑是你一个人用的,那无所谓。如果是和“闺蜜”共享一台电脑,最好配置为用户级别的,免得“闺蜜”不小心刺探到重要军情。哈哈,这情节差点变成琼瑶剧了。

环境变量名为 IDF_PATH,值是SDK的所在路径,就是你刚刚安装时选的路径。例如,C:\\Users\\八格牙路\\esp\\esp-idf,注意要指向 esp-idf,因为文件是在这个文件夹下面的,指向它才能找到文件。IDF_TOOLS_PATH 是刚才安装程序自动设置了的。

最后,打开VS Code,安装 Espressif IDF、C/C++、CMake 等插件。其实,只要安装 Espressif IDF 就行,其他的组件会自动安装。

按【F1】,找到命令“配置ESP IDF扩展”,拼命点它就是了,让它执行。

这货能识别出我们刚刚安装的SDK和工具集,选择第三项,使用已有的配置。

打开【设置】窗口,找到【扩展】【ESP-IDF】,在右面页面中往下翻,找到配置 Python 解析器的路径选项,设置成我们刚刚安装好的内置的Python二进制文件。

带有 “Win” 的表示 Windows 平台专用,如果不这样配置,那么那个内置的 Python 就没有用处了。老周这机器上默认装的是 Python 3.9 的,实话告诉你,不兼容的,会报错。所以这个路径必须改成内置的——刚刚安装时选的 xxxxx\\.espressif 目录下的。如果你的机器装的 Py 版本和内置的版本相同,应该能用的,不能用了再改。

还有一处,咱们在把编译好的 .bin 刷到 ESP32 板子上时,一般咱们买的板子是 Micro-USB 的,所以,烧写模式是 UART。于是,把 Flash Type 改一下。这个后面你在烧写是可以改的,不过现在提前改好也省了些功夫。

完工,为了使用一些环境变量能生效,可以重启一下 VS Code,要是环境变量是配置在机器级别的,估计连电脑也要重启。

现在,咱们试试能不能用。

1、启动VSC,打开一个目录作为工作区,这个可以随意发挥。

2、在VS Code中按【F1】,选择“从扩展模板创建项目”。

3、选择 Use current folder,即使用你打开的工作目录。

4、在选择项目模板时,选最后一个,template-app,这TM很不友好,居然这样创建项目。

5、这货真是的,还会打开一个新的 VS Code 窗口来创建项目。然后让你选编译器,反正下面列出的几个都不是,就选第一项好了 —— Scan Kits。

6、打开 main / main.c 文件,把代码中 app_main 函数中,后半部分,也就是那个 for 循环倒数 10 秒重启开发板那一段删掉,不然烧上去后板子老是重启,不好玩。

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h" void app_main(void)
{
printf("Hello world!\n"); /* Print chip information */
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is ESP32 chip with %d CPU cores, WiFi%s%s, ",
chip_info.cores,
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : ""); printf("silicon revision %d, ", chip_info.revision); printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
}

app_main 类似于 main 入口点,经过封装,就像以前写 Windows 程序那样,有个 WinMain。

7、把 ESP32 开发板连上电脑,按【F1】,选择命令“选择要使用的烧录端口”,然后根据你电脑识别的结果选。

8、点击底部工具栏中的“Build, Flash and Monitor”,这个按钮可神了,编译、烧录、打开串口监视器,三个任务自动完成。

9、然后又是坐和等待,C 语言你懂的,编译较慢。

注意观察,如果看到下面这样的输出,说明程序成功运行了。

好了,大功告成,ESP 32 + VS Code 的开发环境就搭建好了。

VS Code 与 ESP32 官方SDK配置的更多相关文章

  1. iOS不用官方SDK实现微信和支付宝支付XHPayKit

    作者:朱晓辉Allen 链接:https://juejin.im/post/5a90dd3a6fb9a0634912b755 前言 前段时间由于项目需求,移除了项目中的微信支付SDK和支付宝支付SDK ...

  2. 如何为 esp32 编译和配置及烧写 MicroPython 固件。

    MicroPython 在 esp-idf (esp32) 上编译固件 esp32 编译 micropython 的固件相关的资料应该很多吧,我也会出一篇,但会额外讲一些 linux 的东西的. 资料 ...

  3. MTK官方SDK包编译openwrt

    全过程需要联网,最好有梯子,编译方式有两种 安装依赖库: apt-get install g++ apt-get install libncurses5-dev apt-get install zli ...

  4. 如何利用官方SDK文件来辅助开发

    如何利用官方SDK文件来辅助开发 1.首先要先知道什么是SDK? SDK或者SDK包指的是,半导体厂商针对自己研发的芯片,同步推出的一个软件开发工具包. 它可以简单的为某个程序设计语言提供应用程序接口 ...

  5. 再谈 retain,copy,mutableCopy(官方SDK,声明NSString都用copy非retain)

    之前一直以为retain就是简单的计数器+1,copy就是重新开辟内存复制对象: 其实不是这样,原来之前的自己独自徘徊于糊涂之中. (官方SDK,对NSString属性的定义都是用copy,而不是re ...

  6. 安卓一键分享到qq,微信,微博,官方SDK非第三方

    当我们项目中需要集成分享功能时,我们通常会采取一下几个办法: 1.调用系统自带分享 优点:简单快速,几行代码搞定,不需添加任何额外包: 缺点:系统会调出手机内部所有带分享功能的APP,且界面风格跟随系 ...

  7. 基于C#的钉钉SDK开发(1)--对官方SDK的重构优化

    在前段时间,接触一个很喜欢钉钉并且已在内部场景广泛使用钉钉进行工厂内部管理的客户,如钉钉考勤.日常审批.钉钉投影.钉钉门禁等等方面,才体会到原来钉钉已经已经在企业上可以用的很广泛的,因此回过头来学习研 ...

  8. 转:nginx 官方drupal 配置 - Drupal | NGINX

    #参考:nginx 官方drupal 配置 - Drupal | NGINX server { server_name example.com; root /var/www/drupal8; ## & ...

  9. Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT SDK 配置详解

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

随机推荐

  1. Yolo:实时目标检测实战(下)

    Yolo:实时目标检测实战(下) YOLO:Real-Time Object Detection After a few minutes, this script will generate all ...

  2. MySQL必知必会笔记——查询的基础知识

    查询基础知识 第七章 数据过滤 组合where子句 MySQL允许给出多个WHERE子句.这些子 句可以两种方式使用:以AND子句的方式或OR子句的方式使用. AND操作符 可使用AND操作符给WHE ...

  3. Spring Boot WebFlux-04——WebFlux 整合 Thymeleaf

    第04课:WebFlux 整合 Thymeleaf 上一篇介绍的是用 MongoDB 来实现 WebFlux 对数据源的操作,那么有了数据需要渲染到前台给用户展示,这就是本文关心的 View 层,Vi ...

  4. redis为什么要提供pipeline功能

    通常我们用redis做接口缓存后,查询接口的性能就能提升到ms级别: 但是redis是纯内存操作啊,总不至于要到ms吧,根据官方的 benchmark 单实例也是能抗 7w+ qps 也就是说单个re ...

  5. csp-s模拟测试55(9.29)联「线段树」·赛「??」题「神仙DP」

    T1 联 考试两个小时终于调过了,话说一个傻逼错最后还是静态查出错的..... 大概维护两个懒标记,一个区间覆盖,一个区间异或,然后保证每个区间只会存在一种懒标记. 然后维护区间0的个数,查询时查询那 ...

  6. 【题解】数颜色 STL vector数组

    小 C 的兔子不是雪白的,而是五彩缤纷的. 题目 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不同的兔子可能有 相同的颜色.小 C 把她标号从 1 到 n 的 n只兔子排 ...

  7. 如何设置Python环境变量

    大家好,我是Yivies.相信很多python的初学者们在进行一顿下一步下一步的安装之后,在windows command命令行输入python的时候会出现这样的情况: 可我们希望它是这样子的: 其实 ...

  8. Java语言实现二维码的生成

    众所周知,现在生活中二维码已经是无处不见.走在街道上,随处可见广告标语旁有二维码,手机上QQ,微信加个好友都能通过二维码的方式,我不知道是什么时候兴起的二维码浪潮,但是我知道,这在我小时候可是见不到的 ...

  9. Windows 11,一个新功能,一场新屠杀

    6月24日,微软正式公布了新一代操作系统:Windows 11.这次的更新距离上一代操作系统Windows 10的发布,隔了有6年之久. 在新一代的操作系统中,包含了这些亮点: 采用了全新的UI设计. ...

  10. LevelDB学习笔记 (2): 整体概览与读写实现细节

    1. leveldb整体介绍 首先leveldb的数据是存储在磁盘上的.采用LSM-Tree实现,LSM-Tree把对于磁盘的随机写操作转换成了顺序写操作.这是得益于此leveldb的写操作非常快,为 ...