前言
ESP32-C3软件开发环境的搭建一言难尽………………折腾了足足2天之久,好在最终不负有心人。
(NOTE:作者的硬件环境是带USB转串口芯片的合宙ESP32-C3经典款,不是简约款。)

经典款和简约款的区别,请参考合宙esp32-c3的wiki:https://wiki.luatos.com/chips/esp32c3/index.html,说明如下图所示,

作者结合以上esp32-c3 wiki的“特别注意”、以及经典款和简约款的原理图,作了如下更细的理解,
①经典款带有USB转UART的CH343P芯片,其Type-C口先通过CH343P芯片,再连接到ESP32-C3的UART0_TXD和UART0_RXD引脚。通过CH343P芯片实现【下载程序和监视串口】的功能,对应的硬件实现原理图如下:

②而简约款没有CH343P芯片,其Type-C口直接连接到ESP32-C3的USB_D -(GPIO18)和USB_D +(GPIO19)引脚。通过ESP32-C3内置USB_CDC虚拟出的串口实现【下载程序和监视串口】的功能,对应的硬件实现原理图如下:

)
首先先说ESP32-C3环境下载遇到的问题,一开始使用VSCode在线下载ESP-IDF资源包,卡在了最后的Python虚拟环境安装,安装卸载了好几次还是失败!!!第二个问题就是通过串口load程序失败的问题!!!。
如果你出现了跟我一样的问题,那就跟随我下面的步骤来解决:
一、网络连接选择
我在自己笔记本电脑连接2.4G/5G-WiFi一步就安装成功了,但是台式电脑用的网线连接的网络方式下载,怎么样都不成功,所以我就禁止了台式电脑的网线连接,方法是:依次右键打开电脑桌面的网络的“属性”——>出现“网络共享中心”的窗口——>点击“更改适配器设置”——>找到“以太网”,右键禁用(后面还可以右键启用,这个不用担心)。之后让台式电脑连接2.4G/5G-WiFi,果不其然可以正常下载。
二、卸载ESP-IDF插件
下面就开始删除,并重新安装ESP-IDF。参考这位优快云博主的方法即可https://blog.youkuaiyun.com/RMDYBW/article/details/134427681
2.1 卸载vscode的espressif插件

2.2 删除之前通过espressif插件下载的esp-idf资源包
这2个文件是我们之前指定在某个路径下安装过的esp-idf资源包,直接删除即可。

三、重新安装ESP-IDF插件和配置ESP-IDF环境
3.1 配置扩展资源包

3.2 设置扩展包安装选项
按照如下图的选项安装,然后点击Install,

安装ESP-IDF Tools中……………………

安装ESP-IDF Python virtual environment中……………………

一路下来,顺利的话就能看到安装成功。
四、使用demo工程测试环境是否成功部署
4.1 生成demo工程
点击下图中的任意一处都可以选择乐鑫官方提供的demo,我们选择blink工程即可。


4.2 选择设备目标
先点击左下角的ESP32-C3,再选择弹出来的ESP32-C3 chip(via ESP-PROG)选项,其他2个选项是不一样的下载方式(可自行研究)。

4.3 串口选择及其被占用问题解决
在这个串口选择的地方我这里就出现问题了!!!注意:你的VSCode这里要显示为ESP32-C3(QFN32)(revision v0.3)标签。

如果红方框的标签和上图一样是显示wch.cn,那你后面可能显示下载失败,因为这是ESP-IDF Tools在调用底层 Python 一直在监视串口日志的UART状态,ESP32-C3(QFN32)(revision v0.3)才是可以下载程序的UART状态。
或许有人疑惑笔者是怎么发现这个wch.cn是监视串口日志的UART状态呢?因为以前可以正常使用ESP32-C3的时候,笔者曾用 IDF-监视器 观察过串口日志,如下图所示,idf.py 和 idf_monitor.py 这两个核心工具脚本,前者负责烧录和调试,后者负责监控。

当串口日志正在输出的时候,察看COM口状态为wch.cn。

综上所述:
| COM口状态 | 对应的VSCode COM标签 |
|---|---|
| 能下载程序 | ESP32-C3(QFN32)(revision v0.3) |
| 在监视串口 | wch.cn |
解决方案:
我用串口调试助手尝试打开COM9,发现提示COM9正在使用,但是我还没有开始监视ESP32-C3的串口日志,也并没有插上任何其他设备。
苦思良久,去问了一下AI智能,发现了这篇博客https://www.cnblogs.com/ckrgd/p/17012109.html,根据其操作,最终找到占用串口的进程并将其结束,便能释放掉COM9了,我这里是被python.exe占用了( 这不知道是不是ESP-IDF环境调用底层python监视串口的bug,还是代码中哪里使能了USB_CDC_BOOT,占用了Python后端进程,导致UART0串口无法与Python.exe链接去下载程序。目前笔者还没找到原因,待深究 )

再去到VSCode,就能成功看到VSCode的COM9端口的选项显示为ESP32-C3(QFN32)(revision v0.3),此时便能解决串口无法下载程序的问题了。

4.4 构建&下载程序
依照下图的标号顺序点击,即可构建和下载程序。

在第3步构建,第一次需要耐心等待几分钟时间。
如果在该步Building project时,出现了转圈圈不动的情况,很有可能是开启了VSCode兼容模式,那么怎么关闭兼容模式呢?
解决方法:先关闭VSCode软件,右键打开桌面的VSCode图标,找到属性—>兼容模式,去掉下图红色箭头处的勾选(是去掉勾选!!不是打勾),再点击确定,打开VSCode重新构建工程即可。

4.5 终端监视串口日志
在VSCode内置终端的右上角处选择ESP-IDF窗口,从下图中可以看到下载程序已经成功。

按下图指示点击,便可以在VSCode内置终端监视blink程序实例的串口日志。

OK,到这里就可以使用VSCode + ESP-IDF插件愉快地开发ESP32-C3了。
五、环境变量设置
5.1 设置IDF_PATH环境变量
为什么要设置IDF_PATH环境变量呢?
因为建立好上述的demo工程并构建完成后,工程中的.vscode\c_cpp_properties.json文件会提示下图的2个错误:无法找到: “${env:IDF_PATH}/components/”,虽然不影响构建工程,但是作者还是想将其解决掉。

解决方法:按下Win键/开始菜单键→输入env→进入环境变量设置→按照下图点击→新建环境变量名:IDF_PATH;再填写其对应的索引路径(变量值):找到components文件夹所在的目录,笔者的components文件在上面安装esp文件夹的v5.3.3/esp-idf内,各位可以参考笔者的D:\Software\EmbeddedDevTools\ESP-IDF\esp\v5.3.3\esp-idf路径找到components文件夹所在的目录。找到填入后,然后一直点击确定,完成环境变量的设置。以上的操作步骤如下图所示:

最后重启任务管理器的Windows资源管理器,再重启VSCode即可,这时候我们便能看到错误已经消失了,如下图所示:

六、总结
6.1 总结点Ⅰ
如果VSCode下载ESP-IDF插件出现失败,卸载ESP-IDF插件和ESP-IDF曾经下载的资源包,然后电脑断开网线,连接WIFI重新下载即可。
6.2 总结点Ⅱ
如果出现串口无法下载程序的情况,先查看串口是否被python.exe或其他进程占用,将占用进程结束后,再次选择COM口时,出现ESP32-C3(QFN32)(revision v0.3)就可以正常下载程序了。

603

被折叠的 条评论
为什么被折叠?



