工欲善其事,必先利其器-基于ubuntu18.04 VScode开发100ASK-ESP32

news2024/11/19 13:17:53

点击上方“嵌入式应用研究院”,选择“置顶/星标公众号

干货福利,第一时间送达!

来源 | 嵌入式应用研究院

整理&排版 | 嵌入式应用研究院

前面我们基于ubuntu环境搭建了esp-idf的开发环境,它也是为了接下来基于VSCode来开发100ASK-ESP32准备的:

工欲善其事,必先利其器-基于ubuntu18.04搭建100ASK-ESP32开发环境

使用集成开发环境(IDE)可以提高开发效率,因为它集成了各种工具,无需输入命令行即可进行编译、下载、调试等操作。IDE自动为我们集成了这些工具,但我们需要了解其背后的原理,这有助于我们深入理解ESP32的编译构建系统,从而更深入地了解其整体框架。

VScode恰恰是一个丰富插件化的开发工具,在工作中我也经常使用,很多时候通过插件安装就可以自动集成这些工具了。我们可以使用VScode+Espressif IDF插件的方式来开发ESP32-S3,如下所示,我们在拓展区搜索这个插件然后进行安装:

36cde93b5a9b91885d6a5dae425d3a4e.png安装完毕后我们在左边栏的最下面就可以看到Espressif对应的图标了,接下来我们点击它或者直接通过Ctrl+shift+P快捷键调出搜索框,输入ESP-IDF-ConfirguareESP-IDF extension显示如下:258792d8a06df1225d956c8b296b4bba.png接下来点击USE EXISTING SETUP配置我们之前放esp-idf的路径、python的路径以及esp-idf的工具环境:e43cb26d724a619cf6cee3026c266130.png如下所示:7f7572c6363a89f1a04f73f7f65d4d77.png这个时候会自动安装一些开发所需要的工具链:24f8ed9a3cfa92159d65f3197d06b037.png期间如果右下角有弹出需要安装一些插件之类的,默认点击install即可,最后安装成功后会弹出以下界面,根据提示信息我们将对应的命令复制到linux命令后终端上运行即可,如下所示:68865b0207038415c3a2cce62a6e8a5b.pnga24949475cd44a46bdb606def9b52d51.png至此,VSCode esp32-idf开发环境就已经搭建完毕了!接下来我们直接通过Ctrl+shift+P快捷键调出搜索框,输入ESP-IDF: Show Examples Projects显示如下:a5009fc113ca2310a30683daae550fd9.png点击然后选择当前esp-idf的环境:8a45c271fb2a87b30b28bc9f1599d4f1.png然后会切换到ESP-IDF Examples对应的界面,其中左边是对应例程,还有一些模板工程,初来乍到,我们直接选择hello_world,然后选择创建这样的一个项目:168086addbdaf97b7cf0402d3c590591.pngf9920790645feaeb267273043e8bf477.png然后我们就可以基于这个模板来愉快的进行开发了,如下所示,最下面的选项可以选择连接当前的设备串口(前提是设备已经连接到电脑上),编译、下载、调试、终端输出等等,与常规的VSCode开发没有什么不同了。20b957aa78be6f4eb3302fdebcb05504.png至此,基于VSCode+esp-idf开发环境就已经搭建完成了,如果要学习某个例程或者基于某个例程进行开发,只需要按照前面的通过Ctrl+shift+P快捷键调出搜索框,输入ESP-IDF: Show Examples Projects找到对应的Demo,根据自己的需求新建一个基于该模板的工程即可进行项目开发。

韦东山老师关于ESP32-S3的开发教程也在陆续更新中,当然还有搞定寄存器计划,有需要学习的小伙伴们安排了:

韦东山老师的搞定寄存器计划,它来了,它来了!

往期精彩

如何专业地命名嵌入式软件版本?

我骚哥,从PLC逆袭嵌入式的成功上岸经历!

一个能够通过端测AI检测设备异常振动的产品级开发项目

工欲善其事,必先利其器--Vscode嵌入式Linux开发远程开发设置

工欲善其事,必先利其器-基于ubuntu18.04搭建100ASK-ESP32开发环境

一看就懂!动画图解常见串行通讯协议:SPI、I²C、UART、红外

觉得本次分享的文章对您有帮助,随手点[在看]并转发分享,也是对我的支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/681210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【openGauss基本概念】---快速入门

【openGauss简单使用】---快速入门 🔻 一、基本概念🔰 1.1 openGauss🔰 1.2 数据库(Database)🔰 1.3 数据块(Block)🔰 1.4 行(Row)🔰 …

【MySQL数据库】主从复制与读写分离

目录 一、读写分离1.1概述1.2为什么要读写分离呢?1.3什么时候要读写分离? 1.4主从复制与读写分离1.5mtsql支持的复制类型1.6主从复制工作流程1.7主从复制原理 二、主从复制实战 一、读写分离 1.1概述 读写分离,基本的原理是让主数据库处理事…

React从入门到实战 -组件的三大核心属性(2)props

文章目录 基本使用对props进行限制类式组件中的构造器 基本使用 // 定义组件class MyComponent extends React.Component{render(){return (<ul><li>姓名&#xff1a;{this.props.name}</li><li>年龄&#xff1a;{this.props.age}</li><li>…

【开源与项目实战:开源实战】85 | 开源实战四(中):剖析Spring框架中用来支持扩展的两种设计模式

上一节课中&#xff0c;我们学习了 Spring 框架背后蕴藏的一些经典设计思想&#xff0c;比如约定优于配置、低侵入松耦合、模块化轻量级等等。我们可以将这些设计思想借鉴到其他框架开发中&#xff0c;在大的设计层面提高框架的代码质量。这也是我们在专栏中讲解这部分内容的原…

MongoDB负载均衡集群(第8章节选)

MongoDB自身可组成分片加复制的集群&#xff0c;在这个集群的前端加上负载均衡器&#xff08;比如HAProxmy Keepalived&#xff09;&#xff0c;就可组建成一个无单点故障、十分完美的高可用负载均衡集群&#xff08;如图8-1所示&#xff09;。 图8- 1 整个MongDB高可用体系结…

基于java+swing+mysql飞机票预订系统

基于javaswingmysql飞机票预订系统 一、系统介绍二、功能展示1.项目内容2.项目骨架3.数据库表4.注册窗口5.登录窗口6、用户-主窗口7、用户-查询航班8.用户--订票8.用户--取票9.管理员-所有航班信息10.管理员-添加航班11.用户信息12.订票状态 四、其它1.其他系统实现五.获取源码…

路径规划-DWA算法(C++实现)

1、简单介绍 DWA算法&#xff08;dynamic window approach&#xff09;&#xff0c;其原理主要是在速度空间&#xff08;v,w&#xff09;中采样多组速度&#xff0c;并模拟出这些速度在一定时间内的运动轨迹&#xff0c;并通过评价函数对这些轨迹进行评价(其中包括距离障碍物距…

【学习笔记】 科目一之概念篇

【学习笔记】 科目一之概念篇 概念题方法 1&#xff09;抓重点&#xff1a;科目一设计知识范围太广&#xff0c;不要妄想所有知识点都复习到&#xff0c;这是不可能的&#xff0c;我们的目标是45分几个而不是考高分&#xff0c;复习时间有限&#xff0c;所以要学会抓重点&…

图片是如何生成的--图像生成模型(GAN、VAE、扩散模型)简介

目录 1.GAN 2.AutoEncoder及其变种&#xff1a;AE/DAE/VAE/VQVAE 2.1 AE&#xff1a; 2.2 DAE&#xff1a;Denoising AutoEncoder 2.3 VAE&#xff1a;Variational AutoEncoder 2.4 VQVAE&#xff1a;Vector-quantised Variational AutoEncoder 3. 扩散模型 3.1 扩散…

【openGauss简单数据管理】--快速入门

【openGauss简单数据管理】--快速入门 &#x1f53b; 一、openGauss数据库管理&#x1f530; 1.1 连接openGauss数据库&#x1f530; 1.2 创建数据库&#x1f530; 1.3 查看数据库和切换数据库&#x1f530; 1.4 修改数据库&#x1f530; 1.5 删除数据库&#x1f530; 1.6 启停…

【QQ界面展示-实现自动回复 Objective-C语言】

一、刚才咱们监听键盘弹出事件,是怎么监听的, 1.监听键盘弹出事件的步骤 1)首先,在控制器的viewDidLoad方法中,创建一个NotificationCenter对象啊 2)通过center,让当前控制器的这个方法,监听这个通知, 3)然后,我们在这个通知里面,获取到键盘的Y值, 4)对我们的…

Rust 原始类型之数组array内置方法

目录 数组 array 声明 访问 引用 Reference 切片 Slice 方法 题目实例 数组 array 在 Rust 中&#xff0c;数组是一种固定大小的数据结构&#xff0c;用于存储具有相同数据类型的元素的有序集合。 “固定大小”是指数组中的元素的类型和数量确定&#xff0c;也就确定了…

【从零开始学习JAVA | 第十八篇】接口介绍

目录 前言&#xff1a; 接口&#xff1a; 如何定义一个接口&#xff1a; 如何使用一个接口&#xff1a; 接口中成员的特点&#xff1a; 接口与类的区别&#xff1a; 接口的应用&#xff1a; 总结&#xff1a; 前言&#xff1a; 接口其实是为了弥补继承的缺点&#xf…

C语言文件打开关闭详解、文件顺序读写详解。

文件的打开和关闭 fopen函数原型&#xff1a; FILE *fopen( const char *filename, const char *mode );const char *filename 文件的路径以及名字const char *mode 文件的打开方式 文件打开方式含义如果文件不存在“r”读文件不存在会报错“w”写(清空写)建立一个新的文件“…

【新手上路】如何在Web3时代成为XR创建者

目录 0 XR在Web3里的作用 1 XR的概念、特征、技术、设备、平台、应用和工具 1.1 VR的概念、特征和技术 1.2 AR的概念、特征和技术 1.2 XR的设备、平台、应用和工具 2 选择XR的方法 2.1 何时使用VR 2.2 何时使用AR 3 开发XR作品的4个步骤 4 成为XR构建者的路径 4.1 三…

小程序布局中相对定位的用法

小程序中一般为了有一定的设计效果&#xff0c;会将下边组件的内容提升一点到上边去&#xff0c;比如我们的电商展示模板里&#xff0c;会将商品列表覆盖一点到背景图&#xff0c;效果如下&#xff1a; 这种要如何搭建呢&#xff1f;就是利用到了CSS相对定位的原理 搭建组件 …

27.移除元素

LeetCode-27.移除元素 1、题目描述2、解题思路3、代码实现3.1Java代码实现3.2双指针代码优化 4、解题记录 1、题目描述 题目描述&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要…

windows搭建vue开发环境

参考博客&#xff1a;最详细的vue安装教程_一只野生程序媛的博客-CSDN博客 Vue安装环境最全教程&#xff0c;傻瓜式安装_浪漫主义码农的博客-CSDN博客 1、安装nodejs&#xff0c;从下面官网下载版本&#xff0c;对应安装就行了&#xff1a; Node.js 中文网 2、安装好后&…

合宙Air724UG Cat.1模块硬件设计指南--天线接口

天线接口 简介 天线是发射和接收电磁波的一个重要的无线电设备&#xff0c;没有天线也就没有无线电通信。天线品种繁多&#xff0c;以供不同频率、不同用途、不同场合、不同要求等不同情况下使用。 特性 LTE天线接口。50 欧姆特性阻抗&#xff0c;不推荐使用PCB板载天线&#…

脚本模式的特点和用法

一、什么是脚本? 脚本(script)是使用一种特定的描述性语言&#xff0c;依据一定的格式编写的可执行文件&#xff0c;又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。 简单解释:脚本类似于演戏时用到的剧本&#xff0c;脚本其实就是一系列指令——演员看了指令就…