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

article/2025/8/2 5:07:25

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


http://www.hkcw.cn/article/TsORroVnbb.shtml

相关文章

深入 RAG(检索增强生成)系统架构:如何构建一个能查资料的大语言模型系统

🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、LLM 的局限:模型知识“封闭” vs 现实知识…

VSCode+Cline 安装配置及使用说明

安装配置 打开VSCode,点击左侧Extension图标,在弹出页面中,检索Cline,选择Cline进行安装。 安装完毕,在左侧会出现一个图标,点击图标 选择【Use your own API key】,在出来的界面中选择大模型&…

【征求意见】四川省大数据发展研究会关于对《数据资源建设费用测算标准》团体标准征求意见的通知

四川省大数据发展研究会 关于对《数据资源建设费用测算标准》团体标准征求意见的通知 各有关单位: 由四川省大数据发展研究会归口、成都东契奇科技有限公司牵头编制的《数据资源建设费用测算标准》团体标准已形成征求意见稿,现公开征求意见。请于2025年…

下载即转化的商业密码:解析华为应用商店CPD广告的智能投放逻辑

在移动互联网流量红利见顶的背景下,华为应用市场凭借其终端生态优势正成为开发者获客的新蓝海。数据显示,2025年Q1华为应用商店全球分发量同比增长27%,其中CPD广告因其"下载才付费"的精准特性,已成为金融、游戏、工具类…

Electron-vite【实战】MD 编辑器 -- 文件列表(含右键快捷菜单,重命名文件,删除本地文件,打开本地目录等)

最终效果 页面 src/renderer/src/App.vue <div class"dirPanel"><div class"panelTitle">文件列表</div><div class"searchFileBox"><Icon class"searchFileInputIcon" icon"material-symbols-light:…

【数据库】并发控制

并发控制 在数据库系统&#xff0c;经常需要多个用户同时使用。同一时间并发的事务可达数百个&#xff0c;这就是并发引入的必要性。 常见的并发系统有三种&#xff1a; 串行事务执行&#xff08;X&#xff09;&#xff0c;每个时刻只有一个事务运行&#xff0c;不能充分利用…

Golang持续集成与自动化测试和部署

概述 Golang是一门性能优异的静态类型语言&#xff0c;但因其奇快的编译速度&#xff0c;结合DevOps, 使得它也非常适合快速开发和迭代。 本文讲述如何使用Golang, 进行持续集成与自动化测试和部署。主要使用了以下相关技术&#xff1a; dep&#xff1a; 进行包的依赖管理gin…

Google car key:安全、便捷的汽车解锁新选择

有了兼容的汽车和 Android 手机&#xff0c;Google car key可让您将Android 手机用作车钥匙。您可以通过兼容的 Android 手机锁定、解锁、启动汽车并执行更多功能。但是&#xff0c;Google car key安全吗&#xff1f;它是如何工作的&#xff1f;如果我的手机电池没电了怎么办&a…

QT开发技术【QTableView分页实现】

一、引言 在开发桌面应用程序时&#xff0c;当需要展示大量数据到表格中&#xff0c;一次性加载所有数据可能会导致界面卡顿、响应缓慢&#xff0c;甚至内存溢出。QTableView 是 Qt 框架中用于展示表格数据的强大组件&#xff0c;结合 QAbstractTableModel 可以实现数据的分页…

新增Vulkan支持|UWA Gears V1.1.0

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台&#xff0c;提供了实时监测和截帧分析功能&#xff0c;帮助您精准定位性能热点&#xff0c;提升应用的整体表现。 本次版本更新主要是Frame Capture模式新增对Vulkan项目的支持&#xff0c;进一步满足使用Vulkan开发…

mapbox高阶,PMTiles介绍,MBTiles、PMTiles对比,加载PMTiles文件

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️Fill面图层样式1.4 ☘️PMTiles介绍1.5…

Sums of Sliding Window Maximum_abc407F分析与解答

倒着考虑&#xff0c;考虑每个a_i对哪些k值做出贡献&#xff0c;对一个a_i&#xff0c;定义L_i和R_i为&#xff1a; 以上笔误&#xff1a;R_i的定义应该是&#xff1a;连续最多R_i个元素比a_i 小 如果得到了 L_i和R_i&#xff0c;我们从k的长度从小到大依次看看&#xff0c;a_…

用通义灵码2.5打造智能倒计时日历:从零开始的Python开发体验

前言:为什么选择通义灵码2.5? 通义灵码2.5版本带来了令人兴奋的升级,特别是全新的智能体模式让编程体验焕然一新。作为一名长期关注AI编程助手的开发者,我决定通过开发一个实用的倒计时日历小工具,来全面体验通义灵码2.5的各项新特性。 一、项目构思与智能体协作 首先,…

历年西安电子科技大学计算机保研上机真题

2025西安电子科技大学计算机保研上机真题 2024西安电子科技大学计算机保研上机真题 2023西安电子科技大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school 查找不同的连续数字串个数 题目描述 给定一个数字串&#xff0c;查找其中不同的连续数字串的个…

一文读懂 STP:交换机接口状态详解及工作原理

一文读懂 STP&#xff1a;交换机接口状态详解及工作原理 一. 引言&#xff1a;STP 是什么&#xff0c;为何如此重要&#xff1f;二. STP 的核心作用&#xff1a;避免网络环路2.1 什么是 STP&#xff1f;2.2 STP 的核心概念 三. STP 交换机接口状态详解四. STP 的工作原理&#…

清华大学发Nature!光学工程+神经网络创新结合

2025深度学习发论文&模型涨点之——光学工程神经网络 清华大学的一项开创性研究成果在《Nature》上发表&#xff0c;为光学神经网络的发展注入了强劲动力。该研究团队巧妙地提出了一种全前向模式&#xff08;Fully Forward Mode&#xff0c;FFM&#xff09;的训练方法&…

PHP学习笔记(十一)

类常量 可以把在类中始终保持不变的值定义为常量&#xff0c;类常量的默认可见性是public。 接口中也可以定义常量。 可以用一个变量来动态调用类&#xff0c;但该变量的值不能为关键字 需要注意的是类常量只为每个类分配一次&#xff0c;而不是为每个类的实例分配。 特殊的…

NodeMediaEdge快速上手

NodeMediaEdge快速上手 简介 NodeMediaEdge是一款部署在监控摄像机网络前端中&#xff0c;拉取Onvif或者rtsp/rtmp/http视频流并使用rtmp/kmp推送到公网流媒体服务器的工具。 通过云平台协议注册到NodeMediaServer后&#xff0c;可以同NodeMediaServer结合使用。使用图形化的…

强化学习的前世今生(五)— SAC算法

书接前四篇 强化学习的前世今生&#xff08;一&#xff09; 强化学习的前世今生&#xff08;二&#xff09; 强化学习的前世今生&#xff08;三&#xff09;— PPO算法 强化学习的前世今生&#xff08;四&#xff09;— DDPG算法 本文为大家介绍SAC算法 7 SAC 7.1 最大熵强化…

优质电子实验记录本如何确保数据不泄密?

实验数据是企业和科研机构的核心资产&#xff0c;承载着创新成果与竞争优势&#xff0c;选择合适的实验记录载体至关重要。本文从传统纸质记录的安全性优劣势出发&#xff0c;对比分析普通电子实验记录本存在的安全问题&#xff0c;详细阐述优质电子实验记录本如何构建数据防护…