开发基于 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. Vue&Element 前端应用开发之菜单和路由的关系

    我们一般的应用系统,菜单是很多功能界面的入口,菜单为了更好体现功能点的设置,一般都是动态从数据库生成的,而且还需要根据用户角色的不同,过滤掉部分没有权限的菜单:在Vue&Element的纯前端 ...

  2. Kaggle上的犬种识别(ImageNet Dogs)

    Kaggle上的犬种识别(ImageNet Dogs) Dog Breed Identification (ImageNet Dogs) on Kaggle 在本节中,将解决在Kaggle竞赛中的犬种 ...

  3. ng : 无法加载文件 C:\Users\szz\AppData\Roaming\npm\ng.ps1,因为在此系统上禁止运行脚本的解决方案

    当安装好Angular CLI后想要查看该版本时在终端键入: ng version 后出现下图的错误提示 解决方案: 在win10 系统中有一个搜索框 输入 Windos PowerShell (一定 ...

  4. 手把手教你彻底理解MySQL的explain关键字

    数据库是程序员必备的一项基本技能,基本每次面试必问.对于刚出校门的程序员,你只要学会如何使用就行了,但越往后工作越发现,仅仅会写sql语句是万万不行的.写出的sql,如果性能不好,达不到要求,可能会阻 ...

  5. 不下软件,照样可以完美正确格式化树莓派SD卡!(恢复U盘/SD卡到满容量)

    树莓派作用千千万,系统崩溃的理由也数不胜数(不要问我为啥知道),所以系统的重装和sd卡的格式化也在所难免.顺便给大家看一下我今天的成果,我不就是不小心摔了一下我的树莓派...我和sd卡一定是冤家! 捡 ...

  6. Qt实现基于多线程的文件传输(服务端,客户端)

    1. 效果 先看看效果图 这是传输文件完成的界面 客户端 服务端 2. 知识准备 其实文件传输和聊天室十分相似,只不过一个传输的是文字,一个传输的是文件,而这方面的知识,我已经在前面的博客写过了,不了 ...

  7. JavaScript的介绍概括

    1.js是一种轻型的解释性的脚本语言,称为web脚本语言. 2.js的执行原理:当客户端向服务器端请求某个页面时,浏览器端将整个页面中包含JavaScript的脚本代码作为响应内容,发送到客户端的机器 ...

  8. Qt Creator配置clang-format格式化代码插件

    clang-format是一种格式化代码的插件,可用于格式化C / C ++ / Java / JavaScript / Objective-C / Protobuf / C#代码.而Qt Creat ...

  9. Zabbix5.0钉钉报警(centos7)

    2.1.到钉钉官网下载pc版钉钉,安装.注册.登陆: 钉钉下载地址:https://www.dingtalk.com/ 2.2.创建群聊和钉钉机器人: 1.创建群聊,把需要收到报警的人员都拉到这个群: ...

  10. SonarQube插件

    关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧. 或者上微软的官方网站进行下载 将下载的插件上传到自己的sonarqube的服务的机器上,放置插件目录下,重启sonarqube即可 ...