欢迎使用立创实战派ESP32-C3开发板!本教程是开发板的配套文档教程,教程结构清晰,循序渐进,学完之后,即可轻松拿ESP32-C3做实战项目。
ESP32的开发方式有很多,例如Arduino、MicroPython、ESP-IDF等。本手册以乐鑫官方ESP-IDF开发方式进行讲解,需要开发者有一定的C或C++语言基础。另外,ESP-IDF SDK使用freeRTOS操作系统,需要开发者有使用freeRTOS操作系统的经验。如果你没有C和freeRTOS基础,还想通过本教程学习ESP32,可以在遇到相关C和freeRTOS基础问题时,通过查阅相关学习资料解决。
接下来讲的是开发前的准备工作,先了解开发板硬件,再搭建好开发环境。
第1章 开发板介绍
1.1 总体介绍
- 开发板主控芯片为ESP32-C3,外置FLASH容量为8MB,芯片内置SRAM容量为400kB。
- 显示方面,集成了2.0寸IPS高清彩色液晶屏,可以用作各种显示应用。电容式触摸屏,可以实现手指控制应用。
- 音频方面,集成了音频编解码芯片ES8311,有麦克风输入声音,有喇叭播放声音。
- 传感器方面,集成了6D姿态传感器,地磁传感器,可用于姿态显示,指南针等应用。温湿度传感器,用于温湿度显示。
- 外拓接口两个,一个是I2C接口,一个是多功能接口。I2C接口,可以连接外部支持I2C通信的传感器器件。多功能接口,引出了2个ESP32的GPIO引脚,这两个引脚,可以当作两个普通GPIO口使用,也可以配置为串口,也可以配置为I2C,也可以配置为CAN口。
- 开发板集成USB转TTL芯片,通过TYPE-C接口,一条数据线就可以完成供电、下载和观察数据。
- 有一个复位按键和一个用户自定义按键。
- 结合ESP32-C3的wifi和蓝牙功能,开发板就可以做很多有趣的应用了。
1.2 最小系统介绍
目前,ESP32-C3系列芯片有4款型号,如下图所示,下图截取自官方手册。
我们开发板主控芯片的型号是上面列表中的第一种:ESP32-C3,与其它型号的不同之处是,芯片内部没有集成FLASH,需要外置。其它3个型号都内置了4MB的flash,我们开发板上的外置FLASH芯片容量是8MB。
上面分别是ESP32-C3和NOR FLASH存储芯片的原理图,相当于是ESP32-C3的最小系统。 ESP32-C3引脚的网络标号名称,采用GPIO序号+外设功能的方式,这样写的好处就是看名字就可以知道引脚的用途,以及它的GPIO序号,这样的命名方式对编程非常的友好。1.3 外设介绍
下图是USB转串口电路,连接到ESP32的串口0,可以实现自动程序下载和串口终端调试功能。USB转串口芯片使用CH343P,需要安装驱动使用。
CH343P驱动下载地址:https://www.wch.cn/downloads/CH343SER_EXE.html
下图是按键电路,一共两个按键,一个是复位按键,一个是用户按键。复位按键,重启单片机。用户按键,可以实现自定义功能。如果没有前面的程序自动下载电路,程序下载的时候,需要先按BOOT按键不松开,然后按RESET开始下载。因为BOOT和RESET已经被自动下载电路控制,所以这里的BOOT按键其实就是个用户按键了,可以用作自定义输入功能。下图是液晶屏和触摸屏接口电路。液晶屏使用SPI通信方式,触摸屏使用I2C通信方式。液晶屏支持程序控制背光打开、关闭和PWM亮度调节。
下图是音频电路。音频芯片使用ES8311,通过I2S接口与ESP32-C3连接。ES8311还连接了麦克风和扬声器,其中,麦克风连接到了ES8311的模拟麦克风接口,扬声器和ES8311之间还连接了音频功放芯片NS4158B。
下图是开发板上的三种传感器,包含温湿度传感器、6D姿态传感器、地磁传感器。这三个传感器,都使用同一个I2C接口与ESP32-C3通信。另外,前面提到的触摸屏也和这些传感器一样,使用同一个I2C接口。
下图是外部扩展接口电路。开发板上有两个扩展接口,一个是I2C接口,一个是多功能自定义接口。它们采用5P的GH端子,可以输出3.3V和5V,给外部的传感器供电。
I2C接口,与上面的所有传感器和电容触摸屏共用一个I2C接口,所以这里只能用作I2C,不要复用其它功能使用。
另外一个多用接口,引出了GPIO18和19,这两个引脚,默认是ESP32的USB接口,可以使用这个接口下载程序,作为开发板的第二个程序下载接口。也可以用作普通GPIO使用,或者复用为串口、I2C口、CAN口等使用。
第2章 安装开发环境
ESP-IDF开发环境可以安装在Windows、Linux和macOS上,在乐鑫官方《ESP-IDF编程指南》文档里对各个系统的安装有详细说明,感兴趣的同学可以去看一下,想节省时间的直接往下看。
乐鑫《ESP-IDF编程指南》是一个在线文档,链接:https://docs.espressif.com/projects/esp-idf/zh_CN
对于大多数嵌入式工程师,主要使用Windows系统的电脑,如果要在Windows系统上使用Linux开发,需要在系统上安装虚拟机,并在虚拟机里安装Linux系统,最后在Linux系统上安装ESP-IDF,这其中,会遇到很多奇怪的问题,可能会直接劝退很多人。
所以我们推荐直接在Windows下开发,只需要安装两个软件即可。
有两个免费软件可以使用,一个是Eclipse,一个是Visual Studio Code,简称VSCode。本教程使用的是VSCode进行讲解,在VSCode软件里面完成代码的编辑、编译、下载、调试等全过程。
2.1 安装ESP-IDF
ESP-IDF 下载地址链接:https://dl.espressif.cn/dl/esp-idf/?idf=4.4
安装VSCode之前,需要先安装ESP-IDF。上面这个下载链接可能由于乐鑫官网更新网页而失效,没有失效的话,直接打开下载。如果链接失效,可以按照下面的步骤找到下载链接:打开上面提到的《ESP-IDF编程指南》链接,然后点开“快速入门”,然后下滑网页找到“手动安装”章节,点击“Windows Installer”进入,然后再找到“ESP-IDF工具安装器”章节,点击“Windows Installer Download”,进入下载页面。
在下载页面,有多个版本。第一个Online在线版本,其余的几个是Offline离线版本,我们选择Offine离线版本的,因为offline版本的不需要在安装的时候从网上下载任何文件,安装快速。
offline离线版本其中有一个是带IDE的,会同时安装Eclipse软件和ESP-IDF,一键安装,不需要其它配置,它其实是一个在Eclipse上增加乐鑫插件做的一款软件。使用这个软件,可以完成代码的编辑、编译和下载调试。
其余offline离线版本,是不带IDE的,只安装ESP-IDF。因为本教程不使用Eclipse,而是使用VSCode,所以我们选择不带IDE的安装就可以。
ESP-IDF会不定时的更新,本篇教程正在编辑的这时候,页面上的版本有V5.2.1、V5.1.3、V5.0.4和V4.4.6,它们分别是V5.2 V5.1 V5.0和V4.4版本。写本篇教程的时候,V5.2版本刚出来不久,可能后续还会更新其它的小版本,而V5.1版本已经推出好长时间,所以这里我们选择V5.1版本下载。选择V5.1.3进行下载,如下图所示。图标的标题是:ESP-IDF v5.1.3-Offline Installer。由于乐鑫会不定时更新版本,所以你看到的版本号不一定和我的一样。
点击这个图标下载文件,下载好以后,直接双击安装,默认的安装位置是C:\Espressif,你可以改成你想要的位置,但是要确保路径中不要有中文符号。我的安装路径是D:\Espressif。IDE安装完成以后,会在桌面出现两个图标,ESP-IDF 5.1 CMD和ESP-IDF 5.1 PowerShell。通过双击这两个图标其中的一个,就可以进入IDE开发环境,这两个工具,都是命令行工具,其中CMD支持Windows命令,PowerShell支持Linux命令,就和安装了一个虚拟机+Linux系统的效果差不多。
在命令行开发环境里面,可以通过命令编译程序,并下载程序到ESP32芯片。不过,编写和修改程序,需要使用其它的软件,例如我们接下来要安装的VSCode软件。当然也可以使用其它你喜欢的软件编写程序,甚至使用记事本也可以。在下一小节,我们安装好VSCode软件后,会在VSCode上继续安装IDF插件,实现直接在VSCode上编译程序,所以就不使用命令行工具了。关于使用命令行编译下载程序的方法,本教程就不做介绍了。
2.2 安装VSCode开发环境
Visual Studio Code下载地址链接:https://code.visualstudio.com/
VSCode是一款功能强大的软件,相信很多人已经安装且使用它开发过其它型号的芯片了。如果你至今还没有使用过它,先进入VSCode的下载网址,找到下载按钮后直接点击下载即可。文件下载完以后,直接双击安装。安装完成以后,实际上,就可以打开ESP工程进行代码的编写与修改了,修改好以后,使用上一节安装好的命令行提示符输入编译命令和下载程序命令就可以进行开发了。
不过,乐鑫官方给VSCode做一个ESP-IDF插件,安装好这个插件以后,就可以直接在VSCode中完成编辑、编译、下载的全部操作了。也就是说,前面的ESP-IDF IDE命令行工具不安装也是可以的。但是呢,如果你想要安装VSCode的ESP-IDF插件,有两种途径,一种是通过网络下载所需文件,另一种是使用本地已经安装好的所需文件。通过网络下载,可以选择Github或者乐鑫服务器,这里的问题就在于,即使你选择了乐鑫服务器,还是需要搭梯子才能下载到所需文件,如果你没有梯子的话,大概率是安装不成功的。幸好,我们在安装ESP-IDF的时候,已经安装好了本地所需文件,所以,我们在安装VSCode插件的时候,就可以选择本地,然后就可以成功安装插件。
安装好插件以后,去命令行编译下载,还是直接在VSCode里面编译和下载,就取决于你的喜好了。
如果你是第一次安装和使用VSCode,建议你安装中文语言包,这样就会有中文菜单和界面了,在安装VSCode软件的时候,一般会提示是否安装中文语言包,同意就可以,如果安装的时候没有同意,之后安装也可以,我们在VSCode软件左侧点击“插件”图标,在搜索框中输入“中文”,选择“中文(简体)”插件安装,点击“安装”按钮就可以,下图是我已经安装好了,所以没有“安装”按钮了。
接下来安装ESP-IDF插件,同样的方法,搜索ESP-IDF找到乐鑫IDF插件,点击安装。 在安装乐鑫IDF插件的同时,会自动安装C/C++插件,安装完成后,我们可以看一下已安装插件列表。把插件的搜索框清空就可以看到已安装插件。 安装好IDF插件以后,还需要进行配置才能使用。在VSCode菜单栏中选择“查看”->“命令面板”,在命令行输入ESP-IDF,选择“配置ESP-IDF插件”。 如下图所示,第一步选择Global,第二步选择USE EXISTING SETUP,也就是“使用已安装”的意思。 然后出现两个菜单,如下图所示,第一个是在系统中搜索ESP-IDF,第二个是它自动发现的,就是我们在上一节安装ESP-IDF的安装路径,我们点击这个菜单。 稍微等待一会儿后,就会出现下面这个画面,表示安装成功。到这里,我们的准备工作就全部完成了。