当前位置: 首页 > article >正文

ESP32-C3 Vscode+ESP-IDF开发环境搭建 保姆级教程

1.背景

最近esp32的芯片很火,因为芯片自带了WIFI和BLE功能,是物联网项目开发的首选芯片,所以,我也想搞个简单的esp32芯片试试看。于是,我设计了一个简单的板子。如下

这块板子很简单,主要的电路来自于乐鑫的官方文档。

https://www.espressif.com.cn/sites/default/files/documentation/esp32-c3-wroom-02_datasheet_cn.pdf

设计完了之后,就找嘉立创免费做了板子,然后,找同事焊出来了。能不能跑,不知道,先上电,插上电脑,看看吧。

2. 板子焊完之后的现象和问题

板子焊完了之后,我就将我的桌面电源,调成12V,1.5A,接到板子上的电源插口上去了,结果,发现电流很大,但是板子上的指示电源的LED却没有亮。板子差点烧掉了,幸亏我将电流设成了1.5A。经过检查之后,发现同事焊板子时,将所有的二极管都焊反了。上电之后,直通了,还好1.5A的电流不算很大,没有将板子烧坏。然后我请同事将板子上焊反的器件都重新焊了一遍。然后上电之后,电源正常了,LED亮了。

但是,将USB接口插上电脑之后,没有看到任何反应,没有出现要装驱动,也没有在设备管理器里出现串口或者任何的USB口,看来完蛋了,这块板子要变砖了。这块板子用的esp32模块是esp32-c3-wroom-02-h4, 刚焊上去时,里面是空的啥也没有,我看到这模块本身带USB口,所以,我以为USB口插上之后,可以识别出来,可以进行程序烧写了,结果啥也没有。

我也不知道是我的电路设计错了,还是焊错了,还是芯片或者器件有问题,于是,我在网上问,网上有人说,他的模块一接上电脑就能识别出USB口,就要求他下载程序。意思我的板子有问题,在乐鑫的官方论坛问,乐鑫的回答也是我的板子可能有问题。我也不知道咋搞。

后来,我忽然想到,我的板子上不是有串口引出到排针了吗?那我用USB转TTL的转接模块不是可以通过串口给这个esp32模块烧写程序吗?于是,我就试了一下,我找了个乐鑫的flash download tool, 这个工具可以接串口。我用USB转串口后,用这个工具烧了一个空程序,居然显示程序烧录成功,还显示了一些芯片的信息,如下:

我想,既然能显示芯片信息,那么串口的通信是OK的,我又用这工具,读了一下chipinfodump.

更是读到了芯片的信息,所以,我更相信,电路是没有问题的。那么写个简单的程序,试试看吧。

3. Vscode+ESP-IDF开发环境的搭建

 要写程序,自然要搭建开发环境。我是用vscode的,本来我想用platformIO, 但是一装插件,就装上了ESP-IDF的插件。我啥也没改,就按照esp-idf的缺省安装的。装这个插件比较花时间,半个多小时吧。安装的过程,很直接,就不说了, 总之,一路next就行了。

装好之后,怎么写程序犯难了。乐鑫的这个开发工具,搞得很复杂,让人无从下手。

没办法,只能从例程的blink下手了。

先就建立一个空文件夹,然后,从例程里的blink建立一个新工程,路径就选到这个新建的空文件夹。然后,下面的工具栏里按照下面这样选择

然后,点扳手,就能编译了,编译出来这样

但是,第一次编译的时候,要编译900多个文件,把我的电脑都编译得呼呼直响。编译了好长时间,就编译成功了。

点闪电,就能下载了。居然真的下载成功了。下载的时候,要将IO9接地。我的板子上是设计的跳线帽。所以,我插上跳线帽就行了。下载完成后,就拿掉跳线帽,按reset就可以执行了。

但是,烧到我的板子上没用,因为,例程里用的是LED灯带,而且是用的IO8,我的板子是自己设计的,不是乐鑫的开发板,IO口对不上。

乐鑫这里搞了一个sdkconfig,又让人觉得很烦,而且,例程里搞了一堆sdkconfig.defaults.xxx, 完全不知道咋搞,让人头大。不知道修改哪里好。

我将sdkconfig.defaults.esp32c3改成这样:

编译了,还是没用。

后来,我发现还是要改sdkconfig这个文件,改成这样:

这次发现编译之后,可以控制IO0了。

4. 编译结果的检验

我将编译的程序,下载进开发板后,用示波器,看了一下IO0管脚的波形,因为我并没有接真的LED,只能看看波形了。波形是对的,如下:

 

这是我的板子,接着USB转串口的。

这是波形,好像是1s钟翻转。

这是串口monitor看到的结果。

5.到这里已经就OK了,但是, 我想说一下,在vscode的terminal里配置编译环境的问题。因为,乐鑫的开发文档里都是idf.py build, idf.py menuconfig, idf.py setchips, 什么的。看他们的开发文档完全不知道在说啥,我觉得这是乐鑫的问题。

所以,这里我就说一下怎么在vscode的terminal里来配置命令行环境。

第一步,在环境变量里,路径增加idf-python的路径

第二步,要进到你的esp-idf的安装目录,执行   install.bat,我的结果是这样的

第三步,执行export.bat

看到这个就说明可以编译了。

但是,这时的编译是在cmd里面的,还不是在vscode的terminal. 那么,下面要把它搞到vscode的terminal里面。

第四步,将cmd搞到vscode的terminal里面

那么,这时要在vscode里,点左下边的settings, 也就是[Ctrl+,], 然后在里面搜索terminal, 然后点编辑settings.json, 找到"terminal.integrated.profiles.windows" , 在这里面添加如下文字即可

添加完了之后,将vscode关掉,再重新打开。

第五步,结果检验

重新打开vscode之后,点terminal,这时出来的是powershell的,然后点右边的下拉箭头,选command prompt, 就出现cmd的窗口了。 因为刚刚的配置,出现cmd窗口是这样的。

看到没有?这就是export.bat执行后的内容。就是每次点command prompt就会自动执行export.bat帮你把命令行的环境设置好。并且回到你的项目目录。

那么,在这里输入 idf.py build 看看。

看到没有?命令行编译成功。可以下载了。

至此,vscode的terminal里,用idf的命令行也能编译了。这样看乐鑫的开发文档就不会有违和感了。

6. 好了,大功告成,亲个嘴儿

 (注:乐鑫的这个vscode的esp-idf开发环境感觉很不友好,我是花了2天时间,到处搜索,尝试,才搞通的。我觉得这个不友好会劝退很多开发爱好者,乐鑫应该好好改进一下,或者出一个视频,教人怎么配置)

相关文章:

ESP32-C3 Vscode+ESP-IDF开发环境搭建 保姆级教程

1.背景 最近esp32的芯片很火,因为芯片自带了WIFI和BLE功能,是物联网项目开发的首选芯片,所以,我也想搞个简单的esp32芯片试试看。于是,我设计了一个简单的板子。如下 这块板子很简单,主要的电路来自于乐鑫…...

SCSS 全面深度解析

一、SCSS 入门指南:为你的 CSS 工作流注入超能力 在现代 Web 开发中,样式表的复杂性和维护成本日益增加。为了应对这一挑战,CSS 预处理器应运而生,而 SCSS (Sassy CSS) 正是其中最流行、最强大的工具之一。本指南将带你深入了解 …...

解决vscode打开一个单片机工程文件(IAR/keil MDK)因无法找到头文件导致的结构体成员不自动补全问题。

最近一直在用vscode安装c/c插件后编辑STM32标准库(keil MDK)项目源文件,因为我感觉vscode在代码编辑方面比keil MDK本身优秀太多。发现打开工程后,结构体变量的成员在输入“.”后不自己弹出的问题,后来查找各方资料&am…...

Python 在金融中的应用- Part 1

早在2018年,我开始对资本市场产生兴趣。理解资本市场的基本理论对财富积累至关重要。我开始阅读所有经典著作,如《聪明的投资者》和《证券分析》。在这一系列文章中,我想与读者分享在Python编程语言背景下理解金融理论的旅程。在文章的第一大部分,我们将专注于金融模型的线…...

【Node.js 深度解析】npm install 遭遇:npm ERR! code CERT_HAS_EXPIRED 错误的终极解决方案

目录 📚 目录:洞悉症结,精准施治 🔍 一、精准剖析:CERT_HAS_EXPIRED 的本质 🕵️ 二、深度溯源:证书失效的 N 重诱因 💡 三、高效解决策略:六脉神剑,招招…...

Vue内置组件Teleport和Suspense

一. Vue内置组件Teleport 认识Teleport( teleport:允许我们把组件的模板渲染到特定的元素上) 1.1. 在组件化开发中,我们封装一个组件A,在另外一个组件B中使用 组件A中template的元素,会被挂载到组件B中template的某个位置&#xf…...

Java网络编程实战:TCP/UDP Socket通信详解与高并发服务器设计

🔍 开发者资源导航 🔍🏷️ 博客主页: 个人主页📚 专栏订阅: JavaEE全栈专栏 内容: socket(套接字)TCP和UDP差别UDP编程方法使用简单服务器实现 TCP编程方法Socket和ServerSocket之间的关系使用简…...

vue+threeJs 绘制3D圆形

嗨,我是小路。今天主要和大家分享的主题是“vuethreeJs 绘制圆形”。 今天找到一个用three.js绘制图形的项目,主要是用来绘制各种形状。 项目案例示意图 1.THREE.ShapeGeometry 定义:是 Three.js 中用于从 2D 路径形状&#xff08…...

Silky-CTF: 0x02靶场

Silky-CTF: 0x02 来自 <Silky-CTF: 0x02 ~ VulnHub> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.128&#xff0c;靶场IP192.168.23.131 3&#xff0c;对靶机进…...

Kafka 的优势是什么?

Kafka 作为分布式流处理平台的核心组件&#xff0c;其设计哲学围绕高吞吐、低延迟、高可扩展性展开&#xff0c;在实时数据管道和大数据生态中具有不可替代的地位。 一、超高吞吐量与低延迟 1. 磁盘顺序 I/O 优化 突破磁盘瓶颈&#xff1a;Kafka 将消息持久化到磁盘&#xff…...

基于FPGA + JESD204B协议+高速ADC数据采集系统设计

摘 要&#xff1a; 针对激光扫描共聚焦显微镜的大视场、高分辨率需求&#xff0c;为在振镜扫描的时间内获取更多数据量&#xff0c;设计一种基 于 FPGA 的高速数据采集系统。该系统采用 Xilinx 的 A7 系列 FPGA 作为主控芯片&#xff0c;同时选用 TI 公司提供的 LM…...

微服务中引入公共拦截器

本文使用的微服务版本为springcloudAlbaba :2021.0.4.0 微服务工程&#xff0c;一般公共的东西都放入一个工程&#xff0c;别的微服务都会引入这个工程&#xff0c;比如common-service,那么就可以在这个工程编写一个拦截器&#xff1a;&#xff0c;比如&#xff1a; public cla…...

Ubuntu20.04 LTS 升级Ubuntu22.04LTS 依赖错误 系统崩溃重装 Ubuntu22.04 LTS

服务器系统为PowerEdge R740 BIOS Version 2.10.2 DELL EMC 1、关机 开机时连续按键盘F2 2、System Setup选择第一个 System BIOS 3、System BIOS Setting 选择 Boot Setting 4、System BIOS Setting-Boot Setting 选择 BIOS Boot Settings 5、重启 开启时连续按键盘F11 …...

C++11:unique_ptr的基本用法、使用场景和最佳使用指南

文章目录 1. 简介2. 基本语法和用法2.1. 创建unique_ptr2.2. 访问指向的对象2.3. 所有权管理 3. 自定义删除器4. 数组支持5. 常见使用场景5.1. RAII资源管理5.2. 工厂模式5.3. 容器中存储多态对象5.4. Pimpl&#xff08;指针到实现&#xff09;习惯用法 6. 与其他智能指针的比较…...

测量3D翼片的距离与角度

1&#xff0c;目的。 测量3D翼片的距离与角度。说明&#xff1a; 标注A 红色框选的区域即为翼片&#xff0c;本示例的3D 对象共有3个翼片待测。L1与L2的距离、L1与L2的角度即为所求的翼片距离与角度。 2&#xff0c;原理。 使用线结构光模型&#xff08;标定模式&#xff0…...

零基础学习计算机网络编程----socket实现UDP协议

本章将会详细的介绍如何使用 socket 实现 UDP 协议的传送数据。有了前面基础知识的铺垫。对于本章的理解将会变得简单。将会从基础的 Serve 的初始化&#xff0c;进阶到 Client 的初始化&#xff0c;以及 run。最后实现一个简陋的小型的网络聊天室。 目录 1.UdpSever.h 1.1 构造…...

谷歌地图2022高清卫星地图手机版v10.38.2 安卓版 - 前端工具导航

谷歌地图2022高清卫星地图手机版是由谷歌公司推出的一款非常好用的手机地图服务软件&#xff0c;用户能够通过精准的导航和定位来查看地图&#xff0c;周边的商店等生活服务都会在地图上显示&#xff0c;用起来超级方便。 谷歌卫星高清地图 下载链接&#xff1a;夸克网盘分享 …...

RAG的ETL Pipeline源码解读

原文链接&#xff1a;SpringAI(GA)&#xff1a;RAG下的ETL源码解读 教程说明 说明&#xff1a;本教程将采用2025年5月20日正式的GA版&#xff0c;给出如下内容 核心功能模块的快速上手教程核心功能模块的源码级解读Spring ai alibaba增强的快速上手教程 源码级解读 版本&a…...

杭州白塔岭画室怎么样?和燕壹画室哪个好?

杭州作为全国美术艺考集训的核心区域&#xff0c;汇聚了众多实力强劲的画室&#xff0c;其中白塔岭画室和燕壹画室备受美术生关注。对于怀揣艺术梦想的考生而言&#xff0c;选择一所契合自身需求的画室&#xff0c;对未来的艺术之路影响深远。接下来&#xff0c;我们将从多个维…...

Linux文件系统:从VFS到Ext4的奇幻之旅

Linux文件系统&#xff1a;从VFS到Ext4的奇幻之旅 从虚拟文件到物理磁盘的魔法桥梁 引言&#xff1a;数据宇宙的"时空管理者" 当你在Linux终端输入ls -l时&#xff0c;一场跨越多个抽象层的精密协作悄然展开。文件系统作为操作系统中最复杂且最精妙的子系统之一&…...

5月底 端午节

感觉五月写的很少啊&#xff0c;尤其是这一周&#xff0c;真的事情特别多可能。但是实际上我晚上回宿舍之后大概九点十点这块&#xff0c;最后睡觉一般在十一点半到十二点。这一段时间我基本上都是浪费了。要么在打游戏要么在刷视频。但是最基本的生活保障和学习都没有做好。。…...

为何选择Spring框架学习设计模式与编码技巧?

&#x1f4cc; 结论先行 推荐项目&#xff1a;Spring Framework 推荐理由&#xff1a;设计模式覆盖全面 编码技巧教科书级实现 Java 生态基石地位 &#x1f3c6; 三维度对比分析 维度SpringMyBatisXXL-JOB设计模式⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐代码抽象⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐生态价…...

软件评测师 综合测试 真题笔记

计算机组成原理 用作科学计算为主的计算机&#xff0c;其对主机的运算速度要求很高,应该重点考虑 CPU的主频和字长&#xff0c;以及内存容量&#xff1b; 用作大型数据库处理为主的计算机&#xff0c;其对主机的内存容量、存取速度和外存储器的读写速度要求较高&#xff1b; 对…...

晶台光耦在手机PD快充上的应用

光耦&#xff08;光电隔离器&#xff09;作为关键电子元件&#xff0c;在手机PD快充中扮演信号隔离与传输的“安全卫士”。其通过光信号实现电气隔离&#xff0c;保护手机电路免受高电压损害&#xff0c;同时支持实时信号反馈&#xff0c;优化充电效率。 晶台品牌推出KL817、KL…...

JS对数据类型的检测

typeof对基本数据类型有用&#xff0c;但是对引用数据类型不行 console.log(typeof 2)//number console.log(typeof [])//object 失效 instanceof只对引用数据类型有用 console.log([] instanceof Array) //true console.log(2 instanceof String) //false constructor基本…...

llama.cpp:纯 C/C++ 实现的大语言模型推理引擎详解一

&#x1f680; llama.cpp&#xff1a;纯 C/C 实现的大语言模型推理引擎详解 一、什么是 llama.cpp&#xff1f; llama.cpp 是一个由 Georgi Gerganov 开源的项目&#xff0c;旨在使用纯 C/C 在 CPU 上运行 Meta 的 LLaMA 系列大语言模型。 它通过量化、优化注意力机制和内存…...

【亲测有效 | Cursor Pro每月500次快速请求扩5倍】(Windows版)Cursor中集成interactive-feedback-mcp

前言&#xff1a;使用这个interactive-feedback-mcp组件可以根据用户反馈来决定是否结束这一次的请求。如果本次请求并没有解决我们的问题&#xff0c;那我们便可以选择继续这次请求流程&#xff0c;直到问题解决。这样的话&#xff0c;就可以避免为了修复bug而白白多出的请求。…...

BaseTypeHandler用法-笔记

1.BaseTypeHandler简介 org.apache.ibatis.type.BaseTypeHandler 是 MyBatis 提供的一个抽象类&#xff0c;通过继承该类并实现关键方法&#xff0c;可用于实现 Java 类型 与 JDBC 类型 之间的双向转换。当数据库字段类型与 Java 对象属性类型不一致时&#xff08;如&#xff…...

鸿蒙OSUniApp集成WebGL:打造跨平台3D视觉盛宴#三方框架 #Uniapp

UniApp集成WebGL&#xff1a;打造跨平台3D视觉盛宴 在移动应用开发日新月异的今天&#xff0c;3D视觉效果已经成为提升用户体验的重要手段。本文将深入探讨如何在UniApp中集成WebGL技术&#xff0c;实现炫酷的3D特效&#xff0c;并特别关注鸿蒙系统(HarmonyOS)的适配与优化。 …...

华为盘古 Ultra MoE 模型:国产 AI 的技术突破与行业影响

2025 年 5 月 30日&#xff0c;华为正式发布参数规模达 7180 亿的盘古 Ultra MoE 模型&#xff0c;全程基于昇腾 AI 计算平台完成训练。这一进展标志着中国在超大规模人工智能模型领域的自主研发能力达到新高度&#xff0c;同时也为全球 AI 技术发展提供了新的技术路径。 盘古 …...