开发基于 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. CVPR2020最新论文扫描盘点(下)

    CVPR2020最新论文扫描盘点(下) 最近计算机视觉三大顶会之一CVPR2020接收结果已经公布,一共有1470篇论文被接收,接收率为22%,相比去年降低3个百分点,竞争越来越激烈.这里整理来自Tw ...

  2. C++ OP相关注意事项

    C++ OP相关注意事项 Paddle中Op的构建逻辑 1.Paddle中Op的构建逻辑 Paddle中所有的Op都继承自OperatorBase,且所有的Op都是无状态的,每个Op包含的成员变量只有 ...

  3. 基于Spring Boot的在线问卷调查系统的设计与实现+论文

    全部源码下载 # 基于Spring Boot的问卷调查系统 ## 介绍 > * 本项目的在线问卷调查调查系统是基于Spring Boot 开发的,采用了前后端分离模式来开发. > * 前端 ...

  4. Reactor3 中文文档(用户手册)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  5. Git 高级用法,喜欢就拿去用

    如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的! 请注意我有意跳过了 git commit.git pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」用法. 导航 ...

  6. 合宙Luat直播间即将开启,你揭开行业奥秘,让你快人一步。

    嗨~刚陪你们过儿童节 和你们一起成长的合宙Luat 又有新计划 -- 合宙Luat官方直播即将开启 - 敬请关注 - - 官方直播什么内容 - 可能是合宙研发动态 可能是新品发布资讯 可能是行业大咖分 ...

  7. 【odoo14】【开发侧】权限配置

    欢迎转载,但需标注出处,谢谢! 说明: 本文面向开发人员,普通用户可参考[odoo14][用户侧]权限配置.文章结构与用户侧一致. 目录 一. odoo中的对象 二. 权限控制 2.1 实现原理 2. ...

  8. vue项目打包成html,在本地点击直接能打开

    默认情况下vue项目打包后,本地打开index.html是空白的,有报错.Failed to load resource: net::ERR_FILE_NOT_FOUND 这时需要修改config-& ...

  9. CosId 1.0.3 发布,通用、灵活、高性能的分布式 ID 生成器

    CosId 通用.灵活.高性能的分布式 ID 生成器 介绍 CosId 旨在提供通用.灵活.高性能的分布式系统 ID 生成器. 目前提供了俩大类 ID 生成器:SnowflakeId (单机 TPS ...

  10. 用jquery通过点击事件把下拉列表币种的值传给文本框1,再通过文本框1的币种名称用if转化为币别传值给文本框2保存

    <script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>& ...