VS Code 与 ESP32 官方SDK配置
开发基于 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配置的更多相关文章
- iOS不用官方SDK实现微信和支付宝支付XHPayKit
作者:朱晓辉Allen 链接:https://juejin.im/post/5a90dd3a6fb9a0634912b755 前言 前段时间由于项目需求,移除了项目中的微信支付SDK和支付宝支付SDK ...
- 如何为 esp32 编译和配置及烧写 MicroPython 固件。
MicroPython 在 esp-idf (esp32) 上编译固件 esp32 编译 micropython 的固件相关的资料应该很多吧,我也会出一篇,但会额外讲一些 linux 的东西的. 资料 ...
- MTK官方SDK包编译openwrt
全过程需要联网,最好有梯子,编译方式有两种 安装依赖库: apt-get install g++ apt-get install libncurses5-dev apt-get install zli ...
- 如何利用官方SDK文件来辅助开发
如何利用官方SDK文件来辅助开发 1.首先要先知道什么是SDK? SDK或者SDK包指的是,半导体厂商针对自己研发的芯片,同步推出的一个软件开发工具包. 它可以简单的为某个程序设计语言提供应用程序接口 ...
- 再谈 retain,copy,mutableCopy(官方SDK,声明NSString都用copy非retain)
之前一直以为retain就是简单的计数器+1,copy就是重新开辟内存复制对象: 其实不是这样,原来之前的自己独自徘徊于糊涂之中. (官方SDK,对NSString属性的定义都是用copy,而不是re ...
- 安卓一键分享到qq,微信,微博,官方SDK非第三方
当我们项目中需要集成分享功能时,我们通常会采取一下几个办法: 1.调用系统自带分享 优点:简单快速,几行代码搞定,不需添加任何额外包: 缺点:系统会调出手机内部所有带分享功能的APP,且界面风格跟随系 ...
- 基于C#的钉钉SDK开发(1)--对官方SDK的重构优化
在前段时间,接触一个很喜欢钉钉并且已在内部场景广泛使用钉钉进行工厂内部管理的客户,如钉钉考勤.日常审批.钉钉投影.钉钉门禁等等方面,才体会到原来钉钉已经已经在企业上可以用的很广泛的,因此回过头来学习研 ...
- 转:nginx 官方drupal 配置 - Drupal | NGINX
#参考:nginx 官方drupal 配置 - Drupal | NGINX server { server_name example.com; root /var/www/drupal8; ## & ...
- Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT SDK 配置详解
系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...
随机推荐
- Go benchmark 详解
前言 基准测试(benchmark)是 go testing 库提供的,用来度量程序性能,算法优劣的利器. 在日常生活中,我们使用速度 m/s(单位时间内物体移动的距离)大小来衡量一辆跑车的性能,同理 ...
- TVM性能评估分析(二)
TVM性能评估分析(二) Figure 1. A bird's eye view of the µTVM + AutoTVM infrastructure Figure 2. A standard ...
- TensorRT 基于Yolov3的开发
TensorRT 基于Yolov3的开发 Models Desc tensorRT for Yolov3 https://github.com/lewes6369/TensorRT-Yolov3 Te ...
- java数据提交时问题
form 表单中的action有参数时,当method为get时,servlet无法获取该参数 ajax提交数据,servlet无法进行请求转发和重定向. ${pageContext.request. ...
- Headline 项目总结中
目录 1.项目准备 1.1 rem适配 1.2 通用样式CSS 1.3删除测试代码 1.4Git托管 2.login页面 2.1 页面布局和表单校验 2.2login页的接口抽取 2.5.loadin ...
- 基本FTP服务: 文件传输协议
1.服务端虚拟机Server,安装可以提供FTP服务软件 [root@server0 ~]# yum -y install vsftpd 2.虚拟机Server操作,启动 vsftpd服务,设置为开机 ...
- 【模拟8.01】matrix(DP杂题,思维题)
很神的题,感谢lnc大佬的指点. 先设1-LL[i]统称左区间,RR[i]-m为右区间 用L[i]统计从1-i列,出现的左区间端点的前缀和,R[i]是右区间.... f[i][j]中j表示当前在第i列 ...
- Oracle 审计文件
Oracle审计功能: Oracle11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 ...
- 『心善渊』Selenium3.0基础 — 12、Selenium操作鼠标和键盘事件
目录 (一)对鼠标的操作 1.鼠标事件介绍 2.ActionChains 类鼠标操作的常用方法 3.perform()方法 4.鼠标事件操作步骤 5.示例 (1)右键单击.左键双击 (2)鼠标拖拽动作 ...
- 堆和栈的内存分布&一些关于内存泄露、栈溢出和野指针的内容(头秃
内存泄漏&栈溢出 C++中,我们主要涉及的内存是栈和堆, 堆 (By programmer) 申请后由程序员主动释放,遗忘后果严重: 栈 (By compiler)需要时由编译器分配,在不需 ...