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

news/2025/10/5 21:37:44/文章来源:https://www.cnblogs.com/slgkaifa/p/19127071

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看到的结果。

, 我想说一下,在vscode的就是5.到这里已经就OK了,但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天时间,到处搜索,尝试,才搞通的。我觉得这个不友好会劝退很多开发爱好者,乐鑫应该好好改进一下,或者出一个视频,教人怎么配置)

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

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

相关文章

网站数据模版收费网站推广

为什么80%的码农都做不了架构师?>>> 反正每次来做一个不熟悉的东西,就是各种的search ,前一次去做过一个apache的东西,各种蛋疼,各种不能用。好多的东西也是比较旧了的咯。 这次结合前辈的各种东借西拿,总…

CF2115 VP 记录

CF2115 Div1 B 比较人类智慧. 后面操作会覆盖前面的,考虑对序列 \(b\) 构造一种具有必要性的操作使得满足题目限制,因为一个重要事实是序列 \(a\) 并不唯一,只要对于任意位置,在被覆盖前没有覆盖其他位置的操作,或…

设计网站教程wordpress根目录没有.htaccess

近几年,我国潮玩市场经历了爆发式的发展阶段,尤其是盲盒市场屡创新高!盲盒商品主打IP衍生品、周边等具有收藏价值的商品,深受市场的追捧,满足了不同年龄群体的需求。面对盲盒的蓝海市场,众多的品牌也纷纷加…

基于springboot的医护人员排班平台设计与构建(源码+文档+部署讲解)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

做网站的软件公司中国室内设计师联盟

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 一、整体介绍 对话系统(Chat) 自主代理(Agent) 二、技术对比 技术差异 优…

2-SAT模板

洛谷p4782 #include<iostream> #include<vector> #include<algorithm> using namespace std; const int N=2e6+10; int n,m; int dfn[N],low[N],stk[N],instk[N],tot,cnt,scc[N],top; vector<int…

千度网站wordpress加联系方式

LntonAIServer作为一款智能视频监控平台&#xff0c;集成了多种先进的视频质量诊断功能&#xff0c;其中包括抖动检测和过暗检测算法。这些算法对于提升视频监控系统的稳定性和图像质量具有重要意义。 以下是对抖动检测算法和过暗检测算法的应用场景及优势的详细介绍。 一、L…

票务网站策划书手加工外包加工网

点击下方卡片&#xff0c;关注“小白玩转Python”公众号 简介 在计算机视觉领域&#xff0c;准确地测量图像相似性是一项关键任务&#xff0c;具有广泛的实际应用。从图像搜索引擎到人脸识别系统和基于内容的推荐系统&#xff0c;有效比较和查找相似图像的能力非常重要。Siames…

lab5

流程图 到了这个lab5才算是真正看清除了整个lab的样子, 之前还一直纳闷lab2好像没什么用… 这个系统的核心思想是 分而治之。通过将整个键空间划分为多个分片(Shard),并将这些分片分配给不同的、可独立运行的服务器…

lab4

架构 架构图:简单说, 我们要建立的KV数据库是位于raft层之上的, 或者说我们的KV数据库使用了raft库。客户端(就是代码中的clerk)调用应用层(server)的RPC,应用层收到RPC之后,会调用Start函数,Start函数会立即返回…

公司网站要使用我个人的信息备案如何用表格做网站

7-10 解一元二次方程 分数 20 全屏浏览 切换布局 作者 李祥 单位 湖北经济学院 请编写程序&#xff0c;解一元一次方程 ax2bxc0 。 已知一元二次方程的求根公式为&#xff1a; 要求&#xff1a; 若 a0&#xff0c;则为一元一次方程。 若 b0&#xff0c;则方程有唯一解&…

公司关于网站建设的通知春风摩托车官方网

API作用使用场景curl localhost:9200/_cluster/health?pretty查看ES健康状态curl localhost:9200/_cluster/settings?pretty查看ES集群的设置其中persistent为永久设置&#xff0c;重启仍然有效&#xff1b;trainsient为临时设置&#xff0c;重启失效curl localhost:9200/_ca…

某中心2026年推出1111个技术实习岗位

某中心宣布2026年将提供1111个实习岗位,涵盖工程、产品管理、研究等技术领域。实习生将参与影响数百万互联网用户的实际项目,并享受包括无服务器应用平台在内的免费技术资源。某中心承诺2026年提供1111个实习机会 某…

NumPy广播:12个技巧替代循环,让数组计算快40倍

写Python数据处理代码时反复用for循环?这其实是在给程序性能交"税"。NumPy的广播(broadcasting)机制能让你摆脱这种困境——代码量更少,执行更快,关键是思维方式从"逐个迭代"转向"整体形状…

网站建设费用如何做账务处理wordpress 修改页面内容

198. 打家劫舍&#xff08;题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台&#xff09; 思路&#xff1a;dp题除背包外的另外一类题目&#xff0c;重点不在于看前面的情况&#xff0c;而在于考虑本节点的情况。一种情况&#xf…

川土微变频器应用分享

川土微电子在变频器领域的应用主要体现在隔离接口、隔离运放和隔离驱动产品上的解决方案上,其产品通过高可靠性和定制化设计,有效提升了变频器的信号传输安全性和系统稳定性‌了。以下是具体应用场景及产品方案: 一…

wordpress单页导航模版建设网站优化

目录 前言1. 公共逻辑2. 单个删除3. 批量删除 前言 由于近期慢慢转全栈&#xff0c;后续会以前后端的形式讲解 对应的Avue相关知识推荐阅读&#xff1a;【vue】avue-crud表单属性配置&#xff08;表格以及列&#xff09;对应后端知识推荐阅读&#xff1a;java框架 零基础从入…

论文阅读笔记——Large Language Models Are Zero-Shot Fuzzers - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:低秩矩阵、奇异值矩阵和正交矩阵

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

POLIR-Society-Philosophy- Hegels 形而上学System Philosophy Dialectics 系统化哲学辩证法: 自由意志+封闭的绝对精神

POLIR-Society-Philosophy- Hegels 形而上学System Philosophy & Dialectics Hegel的 "系统化哲学&辩证法": 自由意志+封闭的绝对精神