开发基于 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. ALD对照CVD淀积技术的优势

    ALD对照CVD淀积技术的优势 ALD 适合制备很薄的高K金属氧化物层,对腔室的真空度要求比较高,对反应气体源及比例的要求也较高. 目前沉积速率还是比较慢,大大限制了其在工业上的推广应用,不过随着设备 ...

  2. Megengine量化

    Megengine量化 量化指的是将浮点数模型(一般是32位浮点数)的权重或激活值用位数更少的数值类型(比如8位整数.16位浮点数)来近似表示的过程. 量化后的模型会占用更小的存储空间,还能够利用许多 ...

  3. PyTorch 进行 Neural-Transfer

    PyTorch 进行 Neural-Transfer 1.简介 本文讲解如何实现由 Leon A. Gatys,Alexander S. Ecker和Matthias Bethge提出的Neural- ...

  4. 卷积神经网络(CNN,ConvNet)

    卷积神经网络(CNN,ConvNet) 卷积神经网络(CNN,有时被称为 ConvNet)是很吸引人的.在短时间内,变成了一种颠覆性的技术,打破了从文本.视频到语音等多个领域所有最先进的算法,远远超出 ...

  5. MindSpore特性支持类

    MindSpore特性支持类 Q:请问MindSpore支持梯度截断吗? A:支持,可以参考梯度截断的定义和使用. Q:如何在训练神经网络过程中对计算损失的超参数进行改变? A:暂时还未有这样的功能. ...

  6. MLIR算子量化Quantization

    MLIR算子量化Quantization 本文概述了MLIR量化系统的设计.虽然术语"量化"是高度过载的,用于将浮点计算转换为以整数数学表示,适配的变量进行推理的技术的相当窄的范围 ...

  7. YOLOv3和YOLOv4长篇核心综述(上)

    YOLOv3和YOLOv4长篇核心综述(上) 对目标检测算法会经常使用和关注,比如Yolov3.Yolov4算法. 实际项目进行目标检测任务,比如人脸识别.多目标追踪.REID.客流统计等项目.因此目 ...

  8. flume采集MongoDB数据到Kafka中

    环境说明 centos7(运行于vbox虚拟机) flume1.9.0(自定义了flume连接mongodb的source插件) jdk1.8 kafka(2.11) zookeeper(3.57) ...

  9. bzoj2839 集合计数(容斥+组合)

    集合计数 内存限制:128 MiB 时间限制:1000 ms 标准输入输出     题目描述 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 ...

  10. 如何设置Python环境变量

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