Ubuntu:VS Code IDE安装ESP-IDF【保姆级】(草稿)
物联网开发学习笔记——目录索引
Visual Studio Code(简称“VS Code”)是Microsoft向开发者们提供的一款真正的跨平台编辑器。
参考:
VS Code官网:Visual Studio Code - Code Editing. Redefined
乐鑫官网:
ESP-IDF 编程指南 - ESP32 VSCode ESP-ID Extension Install
一、前提条件
Visual Studio Code IDE安装ESP-IDF扩展,需要先完成如下两个步骤:
- 需要先完成ESP-IDF的安装,参考:Ubuntu:ESP-IDF 开发环境配置【保姆级】
- 下载并安装Visual Studio Code。
下载并安装VS Code
去官网下载:Visual Studio Code - Code Editing. Redefined

我下载的版本是:code_1.83.1-1696982868_amd64.deb
Ubuntu下可以直接双击安装,或者使用如下命令安装:
sudo dpkg -i code_1.83.1-1696982868_amd64.deb
Ubuntu 上VS Code的安装非常简单

运行VSCode,并安装基础扩展插件
①:点击【Extensions】扩展图标
②:选择C/C++扩展插件,点击【Install】

二、VSCode IDE中安装ESP-IDF扩展
①:点击【Extensions】扩展图标
②:在Extensions中搜索关键字 espressif, esp-idf, esp32, esp32s2等
③:点击【Install 】esp-idf extension

打开命令面板①点击【View】, ②选择【Command Palette】

或者按 F1快捷键打开命令面板,在命令面板输入 : ESP-IDF: Select where to save configuration settings,用户设置、工作空间设置或工作空间文件夹设置. 获取更多信息请看Working with multiple projects ,默认是用户设置.

等待如下进度条完成

再在命令面板输入 :ESP-IDF: Configure ESP-IDF extension,并点击选中“ESP-IDF: Configure ESP-IDF extension”

进入之后,选中【EXPRESS】

如下界面
①选择类型乐鑫的服务器,这样下载会更快一些
②选择python工具路径:选择系统python3
③然后点击【Install】开始安装

然后,就慢慢等待安装完成

看到这个界面,恭喜您,正确的安装完成了

三、开始使用VSCode ESP-IDF
现在您已经具备了使用 VSCode ESP-IDF 的所有条件,接下来将介绍如何开始您的第一个工程。
创建工程
F1快捷键打开命令面板,在命令面板输入 :ESP-IDF: New Project
①在命令面板输入 :ESP-IDF: New Project
②选中ESP-IDF: New Project

进入New Project页面

下面这步根据自己具体情况


根据自己创建的项目情况选择,我使用hello_world演示

之后在左下角弹出提示信息,选择【Yes】

然后就创建好,并打开了新建的项目窗口

到这一步,创建工程就完成了

配置工程
执行esp-idf 的menuconfig,第一次menuconfig的时间很长,耐心等待

完成后,会自动打开【SDK Configuration editor】页面,在此页面您可以根据开发板情况修改配置项,如我的ESP32开发板flash为4M,我进入如下修改

修改完成,打开sdkconfig文件,搜索相关内容确认一下,修改是否正常生效。

编译工程
编译非常简单,直接点击下发的ESP-IDF Build project按键即可。

第一次编译时间会比较长,耐心等待就好,后面再次编译就很快了。
烧录到开发板
直接点击下发的ESP-IDF Flash device按键即可。

成功烧录完成提示

注意:如果烧录,注意检查串口端口号是否选择正确,和 /dev/ttyUSB*的权限。
串口输出log
点击下发的ESP-IDF Monitor device,打开串口,check串口log输出。

到此,恭喜您已完成 VSCode 图形IDE 扩展 ESP-IDF开发环境的搭建,并可以开始ESP32的入门学习了!
---------------------------------------------------------------------------------------------------------------------------------
备注
查看开发板端口号
1. 首先电脑和开发板使用usb数据线相连

2. 查看开发板连接的端口号
Ubuntu 20.04 LTS系统默认自动usb转串口驱动程序,使用如下命令参考端口号
ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 10月 15 15:45 /dev/ttyUSB0

/dev/ttyUSB0权限问题
烧写开发板可能会出现 Failed to open port /dev/ttyUSB0 错误消息。
此时可以将用户添加至 Linux Dialout 组。
当前登录用户应当可以通过 USB 对串口进行读写操作。在多数 Linux 版本中,您都可以通过以下命令,将用户添加到 dialout 组,从而获许读写权限:
sudo usermod -a -G dialout $USER
在 Arch Linux 中,需要通过以下命令将用户添加到 uucp 组中:
sudo usermod -a -G uucp $USER
请重新登录,确保串口读写权限生效。
临时解决方法,也可以简单给对应端口添加读写权限,但是这种方法每次插拔开发板之后,需要重新下发命令:
sudo chmod a+rw /dev/ttyUSB0
串口终端程序
PuTTY SSH Client是一款非常好用的串口终端程序,既可用于 Windows 也可用于 Linux。
可以快速直观的设置串口参数:波特率 = 115200(需要根据程序修改),数据位 = 8,停止位 = 1,奇偶校验 = N。

物联网开发学习笔记——目录索引_liuzl_2010的博客-CSDN博客
相关文章:
Ubuntu:VS Code IDE安装ESP-IDF【保姆级】(草稿)
物联网开发学习笔记——目录索引 Visual Studio Code(简称“VS Code”)是Microsoft向开发者们提供的一款真正的跨平台编辑器。 参考: VS Code官网:Visual Studio Code - Code Editing. Redefined 乐鑫官网:ESP-IDF …...
子序列(All in All, UVa 10340)rust解法
输入两个字符串s和t,判断是否可以从t中删除0个或多个字符(其他字符顺序不变),得到字符串s。例如,abcde可以得到bce,但无法得到dc。 解法 use std::io;fn main(){let mut buf String::new();io::stdin().…...
AI时代,当项目经理遇到ChatGPT,插上腾飞的翅膀!
文章目录 一、 ChatGPT 在项目管理中的应用1. 任务分配和跟踪2. 风险管理3. 沟通和协作 二、 ChatGPT 在项目管理中的优势1. 高效性2. 可靠性3. 灵活性 三、 ChatGPT 在项目管理中的应用场景1. 智能会议2. 智能文档3. 智能报告 结语AI时代项目经理成长之道:ChatGPT让…...
Springboot项目中加载Groovy脚本并调用其内部方代码实现
前言 项目中部署到多个煤矿的上,每一种煤矿的情况都相同,涉及到支架的算法得写好几套,于是想到用脚本实现差异变化多的算法!一开始想到用java调用js脚本去实现,因为这个不需要引入格外的包,js对我来说也没…...
为什么要做数据可视化
在当今信息爆炸的时代,数据已成为个人和企业最宝贵的资产之一。然而,仅仅拥有大量的数据并不足以支持明智的决策。数据可视化,作为一种将数据转化为图形形式的技术和方法,可以帮助我们更好地理解和分析数据,从而更准确…...
0基础学习VR全景平台篇 第108篇:全景图细节处理(下,航拍)
上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! (调色前图库) (原图-大图) 一、导入文件 单击右下角导入按钮,选择航拍图片所在文件夹,选择图片࿰…...
linux查看文件内容命令more/less/cat/head/tail/grep
1.浏览全部内容more/less 文件: more:可以查看文件第一屏的内容,同时左下角有一个显示内容占全部文件内容的百分比,空格键会显示下一屏的内容,直到文件末尾 [rootmaster data]# more file1less:相较于mor…...
VBA窗体跟随活动单元格【简易版】
本篇博客与以往的风格不同,先上图再讲解。 这个效果是不是很酷,VBA窗体(即UserForm,下文中简称为窗体)可以实现很多功能,例如:用户输入数据,提供选项等等。如本博客标题标注&#…...
epiiAdmin框架注意事项
1,epiiAdmin文档地址: 简介/安装 EpiiAdmin中文文档 看云 2,项目性想新建模块 composer.json文件——autoload选项——psr-4下增加模块名称,然后执行composer update命令。 "autoload": {"psr-4": {"…...
数据仓库与ETL
什么是数据仓库 一种用于存储和管理数据的系统,提供一种统一方式,将不同来源、不同方式、不同时间的数据集成在一起。 数据仓库结构 主题域:一个特定领域的数据集,比如营销、销售、客户、库存等。 维度:定义数据的不…...
Centos7安装Gitlab--gitlab--ee版
1 安装必要依赖 2 配置GitLab软件源镜像 3 下载安装GitLab 4 查看管理员root用户默认密码 5 登录GitLab 6 修改密码 7 gitlab相关命令 1 安装必要依赖 sudo yum install -y curl policycoreutils-python openssh-server perl sudo systemctl enable sshd sudo systemctl sta…...
主题教育问题清单及整改措施2023年-主题教育对照六个方面个人剖析材料
无论前方路途多么坎坷,都要保持内心的坚定和勇敢。生活中没有什么不可战胜的困难,只有我们是否愿意去面对和克服。要相信自己的能力,相信自己拥有足够的智慧和力量去应对一切挑战 每一次的努力都不会白费,每一次的奋斗都是在为自己…...
php新手实战:自定义书源下载api
网上有很多第三方小说网站提供小说下载,而下载的过程无非就是搜索书籍,然后找到下载链接点击下载即可。只是类似这种“良心”的小说网站实在是太少。大多数仅支持在线阅读。而如今,我却要利用这种为数不多的“良心”小说站点提供的书源来作为…...
数据结构 - 5(二叉树7000字详解)
一:二叉树的基本概念 1.1树形结构 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 注意&am…...
xshell使用方法(超详细)
一、安装 下载最新版安装即可,不需要做任何配置。 安装完成后输入账号名和邮箱,确认后邮箱会收到一条确认邮件,将里面的链接点开即可免费使用(仅安装后会出现,认证后以后再打开不需要重复操作,如果重新安…...
【数据库系统概论】第三章关系数据库标准语言SQL
选择题会考: 1.数据查询: SELECT:用于选择需要查询的列和行。 FROM:用于指定要查询的表。 WHERE:用于指定查询条件。 GROUP BY:用于按照指定的列对结果进行分组。 HAVING:用于指定分组条件…...
云计算是什么?学习云计算能做什么工作?
很多人经常会问云计算是什么?云计算能干什么?学习云计算能做什么工作?其实我们有很多人并不知道云计算是什么,小知今天来给大家讲讲学习云计算能做什么。 中国的云计算行业目前正处于快速发展阶段,随着互联网和数字化…...
ES6 -- 模块化(CommonJS、AMD、ES Module)
模块模式 将代码拆分成独立的块,然后再将这些块连接起来可以通过模块模式来实现。这种模式背后的思想很简单:把逻辑分块,各自封装,相互独立,每个块自行决定对外暴露什么,同时自行决定引入执行哪些外部代码…...
c# xml 参数读取读取的简单使用
完整使用之测试参数的读取(xml) 保存一个xml文档(如果没有就会生成一个默认的 里面的参数用的是我们默认设置的),之后每次更改里面的某项,然后保存 类似于重新刷新一遍。 这里所用的xml测试参数前面需要加…...
gym原来是这样用的
今天down了一个深度强化学习的程序,但是试来试去总是跑不成功,第一句就出问题了 env gym.make("clusterEnv-v0").unwrapped总是报没有该环境,思想半天,然后发现这是自己写的环境,需要到gym中去注册才能使用…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
麒麟系统使用-进行.NET开发
文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的,如果需要进行.NET开发,则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET,所以要进…...
2025.6.9总结(利与弊)
凡事都有两面性。在大厂上班也不例外。今天找开发定位问题,从一个接口人不断溯源到另一个 接口人。有时候,不知道是谁的责任填。将工作内容分的很细,每个人负责其中的一小块。我清楚的意识到,自己就是个可以随时替换的螺丝钉&…...
