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

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

相关文章:

  • Apache SeaTunnel部署技术详解:模式选择、技巧与最佳实践
  • 数学建模之最短路径问题
  • 历年南京大学计算机保研上机真题
  • 应用系统适配瀚高报错:字段为numeric,但是表达式为varchar(APP)
  • LearnOpenGL-笔记-其十一
  • Ubuntu开机自动运行Docker容器中的Qt UI程序
  • Prometheus安装及使用(二进制方式)
  • ansible-playbook 进阶 接上一章内容
  • pikachu通关教程-目录遍历漏洞(../../)
  • 【AI-安装指南】Redis Stack 的安装与使用
  • LNMP环境中php7.2升级到php7.4
  • [JVM] JVM内存调优
  • SQL面试提问 :如何计算每个月的订单数量和总金额以及与上个月相比的环比增长率
  • TCP通信与MQTT协议的关系
  • HAProxy 可观测性最佳实践
  • Maven---配置本地仓库
  • 【数据集】基于累计分布函数匹配CDF Matching与多分辨率卡尔曼滤波MKF相结合的地表温度(2002-2020)
  • 交叉编译tcpdump工具
  • 如何优化微信小程序中渲染带有图片的列表(二进制流存储方式的图片存在本地数据库)
  • 图解gpt之注意力机制原理与应用
  • 化妆品网站建设预算/百度问一问客服人工在线咨询
  • 站优化/学seo需要多久
  • 个人网站备案可以做博客吗/友链交易
  • 日本做外贸网站设计/百度网站域名
  • 无锡网站建设优化/信息流广告投放平台
  • 做翻译 网站吗/线上宣传渠道有哪些