图5.1.16 PC端显示的虚拟串口
从上图可以看出,CH340C虚拟出的串口被PC分配了COM3的端口号。这个端口号用于串口调试助手等上位机确定与之通信的串口端。需要注意的是,当CH340C与不同的PC连接,甚至是与同一台PC的不同USB端口连接后,虚拟出的串口被PC分配到的端口号可能是不同的,例如COM4或COM5。读者可以根据设备管理器中端口设备的名称来判断具体是哪个端口号。如果同时连接了多个CH340系列的芯片,则需要逐个测试端口号。
安装完USB虚拟串口驱动后,就可以使用串口调试助手,如正点原子开发的ATK-XCOM软件,与板卡通过串口进行通信了。
接下来,作者将详细阐述ESP-IDF的两种开发方式。这两种方式分别是命令式开发和基于IDE集成开发环境下的开发。为了让读者能够更深入地理解和掌握这两种开发方式,作者将分别用两个小节来讲解这两部分的内容。
5.2 IDF 前端工具
在上一章节中,作者已经介绍过,ESP-IDF能够通过命令的形式来构建或编译系统,这一命令被称为ESP-IDF的前端工具。此工具旨在简化ESP32以及其他Espressif芯片系列的开发流程。它提供了诸多实用功能,从而协助开发者更加高效地构建、烧录以及调试项目。
以下是 idf.py 的一些主要功能:
(1) 构建系统:idf.py 是一个构建系统,它使用 CMake 来生成适用于不同目标平台的构建文件。你可以使用 idf.py 来构建你的项目,它会处理所有必要的编译和链接步骤。
(2) 菜单配置:idf.py menuconfig 命令提供了一个文本用户界面,用于配置项目的各种选项。你可以通过这个界面选择目标硬件、设置编译选项、启用或禁用组件等。
(3) 烧录和调试:idf.py 支持将构建好的二进制文件烧录到目标设备上。你可以使用 idf.py -p PORT flash 命令来烧录固件,其中 PORT 是你的设备的串口或USB端口。此外,idf.py 还可以与调试器配合使用,例如 GDB,以便在目标设备上调试代码。
(4) 清理和重新构建:idf.py提供了清理构建文件的功能,以确保每次构建都是从头开始的。这对于在修改配置或更新源代码后重新构建项目非常有用。
(5) 项目模板和示例:idf.py 通常与 ESP-IDF 提供的项目模板和示例代码一起使用。这些模板和示例为你提供了一个良好的起点,帮助你快速设置和开始你的项目。
(6) 扩展性:idf.py 是可扩展的,允许开发者添加自定义的构建步骤和脚本。这使得开发者可以根据需要定制构建过程,以满足特定项目的需求。
下面作者来讲解一下IDF 前端工具的常用命令。
1,创建新工程(create-project)
“idf.py create-project --path ”是 ESP-IDF 提供的一个命令,用于创建一个新的项目目录结构,并将必要的文件和模板复制到该目录中。这个命令的目的是帮助开发者快速设置一个新的 IoT 项目,而无需手动创建所有必要的文件和目录
下面是这个命令的参数解析和使用方法。
①:参数解析
--path:指定创建工程的位置(必须在文件夹路径下)。
:项目工程名称。
②:使用方法
在桌面新建test_1文件夹,用来保存ESP-IDF新建的工程,然后打开ESP-IDF CMD终端输入“idf.py create-project --path C:\Users\ATK\Desktop\test_1 led”命令创建项目工程,如下图所示:
图5.2.1 指定路径创建工程
此时桌面会创建test_1项目,而工程名称为led。如下图所示:
图5.2.2 新建项目工程
2,创建新组件(create-component)
“idf.py create-component ” 创建一个新的组件,包含构建所需的最基本文件集。一般存放第三方组件,如编写的驱动程序等。
下面是这个命令的参数解析和使用方法。
①:参数解析
:组件名称
②:使用方法
首先使用“cd”命令进入新建工程路径,然后在此路径下新建组件文件夹,如下图所示:
图5.2.3 新建组件
component文件夹一般用来存储第三方组件或者用户的程序驱动代码。
3,设置目标芯片
“idf.py set-target ”命令用于设置工程的目标芯片。由于ESP-IDF支持多款乐鑫SoC芯片,新建工程时默认会选择ESP32类型的芯片。因此,如果我们希望创建一个针对ESP32-S3类型的工程,就必须使用此命令来指定该工程的目标芯片为ESP32-S3。
下面是这个命令的参数解析和使用方法。
①:参数解析
< target >:目标芯片,可使用“idf.py --list-targets”命令查看支持的芯片类型。
②:使用方法
首先输入“idf.py --list-targets” 命令查看支持的芯片类型,然后输入“idf.py set-target esp32s3”命令设置工程的目标芯片,如下图所示:
图5.2.4 设置工程目标芯片
注意: “idf.py set-target”命令将清除构建目录,并从头开始重新生成sdkconfig文件。旧的sdkconfig文件将保存为sdkconfig.old。
4,编译工程
“idf.py build”命令用来编译当前项目工程。如下图所示:
图5.2.5 编译当前项目工程
5,监控项目
“idf.py monitor”命令用来监控当前项目。监控之前必须安装USB虚拟串口驱动以及开发板上的USB串口接入到电脑当中,才能监控当前项目工程。
图5.2.6 监控项目工程(类似串口打印系统数据)
注意:请按“Ctrl + ”快捷键退出监控器。
6,配置项目
“idf.py menuconfig” 这个命令会启动一个文本用户界面,允许开发者为他们的 ESP32 或其他 Espressif SoC 芯片系列的项目配置各种选项。如下图所示:
图5.2.7 配置项目
menuconfig菜单项的内容解析,作者会在以后的章节中讲解这部分的内容,读者先知道有这么一回事即可。
7,下载代码
“idf.py -p COM9 flash”这个命令用来把编译出来的可执行文件烧录到ESP32-S3芯片当中。注意:烧录之前必须调用“idf.py build”命令编译项目工程,编译完成后方能烧录代码。如下图所示:
图5.2.8 烧录代码
上述COM9端口需要根据自己的开发板识别出来的虚拟串口端口。
8,清除编译文件
“idf.py clean”和“idf.py fullclean” 是ESP-IDF(Espressif IoT Development Framework)中用于清理构建目录和输出文件的两个命令,它们的主要区别在于清理的彻底程度和范围。
①“idf.py clean”命令:
这个命令主要用于清理构建目录中的构建输出文件。它会删除build文件夹中的某些文件,但不会删除CMake的配置输出和其他相关文件。这意味着下次构建时,CMake将基于现有的配置信息重新生成所需的构建输出,但不需要从头开始配置整个项目。这通常用于在不需要更改项目配置的情况下,重新构建项目以解决可能存在的构建问题或更新代码。
②“idf.py fullclean”命令:
这个命令则更为彻底,它会删除整个build目录下的所有内容,包括所有的CMake配置输出文件。这意味着下次构建项目时,CMake将需要从头开始配置项目,重新生成所有的构建输出和配置文件。这个命令通常用于在需要完全重置项目构建环境的情况下使用,例如在更改了项目的硬件配置或需要确保从头开始全新构建。
上述提到的命令是IDF前端工具中极为常用的指令,掌握了这些命令,您就可以开始着手开发ESP32项目了。至于其他命令的详细信息,建议读者查阅ESP-IDF编程指南中的IDF前端工具章节内容。
看到此处,许多读者对命令式开发感到束手束脚,毕竟命令式开发难以轻松调试和编写代码,更何况在大型项目中,开发效率会大大降低。因此,为了让开发者能够更顺畅地使用ESP-IDF,作者建议开发者选择基于集成开发环境(IDE)的开发方式。这种方式能更好地支持代码的调试和编写。至于IDE的选择,作者特别推荐VS Code IDE,因为它是一款免费且开源的IDE软件,非常适合用于ESP-IDF的开发工作。
5.3 搭建集成开发环境
在上一小节中,作者详细阐述了命令式开发的常用命令。然而,对于初学者来说,他们更倾向于使用图形界面式的开发方式,因为图形界面能更直观地展示整个开发过程。因此,作者在这里推荐使用VS Code IDE作为开发工具,该软件支持下载ESP-IDF插件,从而方便开发者进行项目开发和调试。ESP-IDF Eclipse 插件可便利开发人员在VS Code开发环境中开发基于 ESP32 的 IoT 应用程序。 本插件集成了编辑、编译、烧录和调试等基础功能,还有安装工具、SDK 配置和 CMake 编辑器等附加功能,可简化并增强开发人员在使用标准VS Code 开发和调试 ESP32 IoT 应用程序时的开发体验。
5.3.1 VS Code安装
鉴于我们使用的是VSCode IDE搭配乐鑫ESP-IDF的方式进行开发,我们接下来便介绍一下VSCode的安装过程。
首先,进入VSCode官方下载页面,根据系统需求选择下载安装包,也可以在A盘à6,软件资料à1,软件à1,IDF开发工具à01-Windows路径下找到VSCode安装包。下图是VSCode官方下载页面。
图5.3.1.1 VSCode官网下载界面
这里,我们选择Windows版本进行下载。因为,我们是在Windows环境下进行的开发,故在此介绍Windows版本的下载步骤。不出意外,其它版本的下载方式应该也是一样的。这里我们不多废话,直接点击下载。
下载完后,我们按照如下所示步骤进行即可:
图5.3.1.2 VSCode下载步骤一
图5.3.1.3 VSCode下载步骤二
在该步骤中,路径如需更改的,请您点击“浏览”进行更改,但请注意:修改的路径最好不要出现中文,以避免在往后的开发过程中遇到问题而导致重装软件,这对您来说就得不偿失了。
图5.3.1.4 VSCode下载步骤三
如需修改,同样点击“浏览”进行设置,无需修改的话直接点击“下一步”即可。
图5.3.1.5 VSCode下载步骤四
这一步骤同样是有需求的都勾上,我们建议是都勾上。
图5.3.1.6 VSCode下载步骤五
点击“安装”后,您只需静候佳音即可。
图5.3.1.7 VSCode下载步骤六
到这一步便可以开始运行VSCode了。打开VS Code,在扩展商店的搜索区域输入“Chinese”安装中文插件,如下图所示:
图5.3.1.8 VSCode中文界面设置
至此,VSCode的安装与配置便算是大功告成了。感谢您能耐心看到此处。
5.3.2 安装与配置ESP-IDF插件
打开VS Code软件,然后按下快捷键“Ctrl+Shift+X”进入应用商城,在搜索栏下搜索Espressif IDF插件,点击安装即可:
图5.3.2.1 Espressif IDF插件安装
至此Espressif IDF插件就算安装好了,接下来我们来看看插件的配置。
快捷键ctrl+shift+p呼出命令栏,在弹如下提示框后,搜索“配置 ESP-IDF 插件”,或者在使用快捷键ctrl+shift+p呼出命令栏后,在搜索框输入配置命令:Configure ESP-IDF。
图5.3.2.2 配置ESP-IDF插件
回车后,进入配置 ESP-IDF 插件界面,如下图所示:
图5.3.2.3 配置 ESP-IDF 插件界面
在上图中,点击“ADVANCED”进入高级配置界面,如下图所示:
图5.3.2.4 配置ESP-IDF插件
配置ESP-IDF插件完成后,点击上图“Configure Tools”选项执行配置操作,此时需要等待系统配置成功,如下图所示:
图5.3.2.5 配置操作
注意:如果出现“python.exe -m pip is not valid”错误,大概是python环境搭建原因。请参考这位博主的解决方案。
从上图可以看到,配置ESP-IDF插件需要进行三个流程,等待第一个流程配置完成,此时进入ESP-IDF Tools配置流程,如下图所示:
图5.3.2.6 下载ESP-IDF Tools
接着点击 “Download Tools”选项下载工具(需要网络加持),如下图所示:
图5.3.2.7 下载ESP-IDF工具
下载成功后,系统进入第三个流程Python环境搭建,如下图所示:
图5.3.2.8 安装Python环境
三个流程完成后,系统提示如下信息,如下图所示:
图5.3.2.9 ESP-IDF配置完成
接下来,作者将讲解插件默认的配置参数,如串口下载的波特率和下载方式,配置流程如下所示:
图5.3.2.10 进入ESP-IDF插件配置
点击“扩展设置”选项,进入配置插件界面,然后找到“Flash Baud Rate”和“Flash Type”选项,如下图所示:
图5.3.2.11 配置下载默认参数
到了这里,我们已经配置ESP-IDF插件完成。
5.3.3 个性化配置和工作环境配置
以 Visual Studio Code(VS Code)为例,settings.json 文件存储了用户的个性化配置和工作环境设置,包括编辑器的外观、语言、代码格式化风格、自动补全行为、调试配置、扩展设置等。在 VS Code 中,可以通过用户设置(全局设置)和工作区设置(针对特定项目或文件夹的设置)来区分不同类型的配置。settings.json
文件配置流程如下。 ① 打开设置界面
我们按住 “Ctrl +”快捷键,进入settings.json文件编写内容。
② 添加个性化配置和工作环境设置参数
添加内容如下:
{
/* 上面的部分是我自己创建的一些设置 */
"editor.insertSpaces": false, /* 自动插入空格禁用*/
"editor.detectIndentation": false, /* 启用时根据文件内容进行重写*/
"editor.renderControlCharacters": true, /* 是否显示控制字符:启用*/
"editor.renderWhitespace": "all", /* 显示4个空格是.... */
"editor.tabSize": 4, /* tab设置为4个空格*/
"editor.fontSize": 18, /* 代码字体大小*/
"editor.fontFamily": "Monaco, 'Courier New', monospace", /* 代码字体*/
"update.mode": "manual", /* 设置不自动更新*/
}
至此,我们已成功安装VS Code集成开发环境的ESP-IDF插件,并完成了VS Code工作环境的配置。接下来,在下一章节中,作者将详细阐述如何在VS Code IDE中新建一个ESP-IDF工程,并进一步探讨工程的调试工具等相关内容。