|
第八章 IDF组件系统的应用
1)实验平台:正点原子DNESP32P4开发板
2)章节摘自【正点原子】ESP32-P4开发指南— V1.0
3)购买链接:https://detail.tmall.com/item.htm?id=873309579825
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/esp32/ATK-DNESP32P4.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子DNESP32S3开发板技术交流群:132780729
IDF组件注册表(IDF Component Registry)是为ESP-IDF(Espressif IoT Development Framework)开发框架提供的官方组件搜索和添加平台。开发者可以通过网络访问IDF组件注册表,搜索并找到所需的组件,然后按照提供的指南将组件添加到自己的ESP-IDF项目中,从而简化了组件的集成过程。
本章将分为如下几个小节:
8.1 IDF组件注册表简介
8.2 项目工程如何添加组件
8.1 IDF组件注册表简介
IDF组件注册表是乐鑫官方专为ESP-IDF开发框架打造的组件搜索与添加平台。尽管ESP-IDF物联网开发框架的components文件夹内已包含诸如lwIP、MQTT等丰富的驱动程序和第三方组件,但这些组件主要服务于物联网领域,具有特定的专一性。部分第三方库并未直接集成于ESP-IDF中。为了提升开发者的工作效率,乐鑫官方推出了IDF组件注册表,其中存储了已适配的第三方组件提供开发者使用。开发者只需联网,即可轻松下载并移植这些组件到自己的项目工程中。
以下是 IDF 组件注册表的特点:
1,简化组件搜索和集成:IDF组件注册表为开发者提供了一个集中化的平台,用于搜索和查找ESP-IDF项目中所需的组件。通过注册表,开发者可以轻松地浏览和筛选组件,根据项目的需求选择适合的组件,并快速集成到项目中。
2,提高开发效率:有了IDF组件注册表,开发者无需花费大量时间在互联网上搜索和评估各种组件。可以直接在注册表中找到经过验证和官方推荐的组件,从而减少寻找和测试组件所需的时间,提高开发效率。
3,确保组件兼容性和质量:IDF组件注册表中的组件都经过严格测试和验证,以确保它们与ESP-IDF框架的兼容性和稳定性。有助于减少项目中可能出现的兼容性问题,提高软件质量。
4,促进组件共享和复用:通过IDF组件注册表,开发者可以轻松共享和复用他们创建的组件。这有助于推动ESP-IDF社区的发展,鼓励更多的开发者参与到组件的开发和贡献中,从而形成良性的生态循环。
5,提供官方支持和文档:IDF组件注册表不仅提供组件的搜索和添加功能,还为每个组件提供详细的文档和官方支持。这有助于开发者更好地理解和使用组件,解决在使用过程中可能遇到的问题。
乐鑫官方的IDF组件注册表地址为:https://components.espressif.com/。打开后如下图所示:
图8.1.1 IDF组件注册表
从上图可以清晰看出,我们可以通过②或③选项对组件进行筛选,以排除那些不支持ESP IDF特定版本或特定芯片的第三方库。同时,我们也可以在①处直接搜索需要添加的组件。例如,作者通过搜索功能找到了esp_jpeg这一JPEG解码库(作者以esp_jpeg解码库组件为例,其他组件也是类似的),如下图所示。
图8.1.2 esp_jpeg解码库
在上图的页面中,我们可以轻松找到关于esp_jpeg的使用方法、芯片支持情况、使用示例以及添加组件的详细方法等内容介绍。这些内容具体如下:
1,芯片支持
esp_jpeg解码库可支持ESP32、ESP32-S3和ESP32-C3等芯片型号,如下图所示。
图8.1.3 esp_jpeg解码库可支持芯片型号
2,使用要求
开发时,需要查看esp_jpeg组件的使用要求,才能添加到项目当中。下图是官方提供的esp_jpeg解码库组件的使用要求。
图8.1.4 esp_jpeg解码库组件使用要求
这个解码库组件对MCU、存储内存以及LCD都有明确的使用要求。如果设备未能满足这些要求,那么将无法顺利使用该解码库组件。因此,在选择和使用此组件时,务必确保设备满足相应的硬件条件。
3,使用示例
通过命令的形式就可以下载esp_jpeg解码库组件的示例工程,如下图所示。
图8.1.5 下载使用实例命令
这样我们就可以参考这个示例来编写自己的jpeg解码实验了。
4,ESP-IDF版本要求
esp_jpeg解码库组件只能在v4.4以上版本运行,如下图所示。
图8.1.6 ESP-IDF版本要求
5,添加组件到项目工程
我们可通过以下命令把esp_jpeg组件添加至项目工程当中,如下图所示。
图8.1.7 组件添加至项目工程
至此,IDF组件注册表的组件安装已完成。读者如果想安装其他组件,可以根据上述流程进行操作即可。
8.2 项目工程如何添加组件
ESP32项目添加组件的方法有两种:一种是命令式,另一种是图形化配置。下面笔者将分别讲解这两种形式。
8.2.1 命令式添加组件流程
下面,作者以基础工程00_basic为例,在此工程下添加esp_jpeg解码库组件。其他组件添加方式是一致。
1,在“5.4 PowerShell”终端下,输入以下命令进入“00_basic”工程,如下图所示。
图8.2.1.1 导航至“00_basic”项目工程
2,在“5.4 PowerShell”终端下,输入图8.1.7命令添加组件,如下图所示。
图8.2.1.2 在“00_basic”项目工程下添加jpeg v1.0.0版本的组件
此时,我们会发现“00_basic”项目工程的main文件夹多了一个idf_component.yml。idf_component.yml文件用于定义ESP-IDF组件的元数据和构建指令,包括组件名称、版本、依赖关系、编译选项和源文件路径等信息。它确保组件与 ESP-IDF 版本和芯片型号的兼容性,同时提供使用说明,帮助开发者有效管理和集成组件。
注意:请读者根据需求安装合适的组件版本,因为某些组件版本可能不支持特定的芯片型号。建议认真浏览官方对该组件的描述,以确保选择正确的安装版本。
3,使用VS Code打开“00_basic”项目工程后,首先清除工程构建文件,然后编译该项目。编译完成后,如下图所示。
图8.2.1.3 下载jpeg组件,并添加至项目工程
从上图可见,在编译“00_basic”基础工程时,系统会自动从IDF组件注册表下载esp_jpeg解码库组件,并将其集成到项目中。这展示了IDF组件注册表的添加与使用机制。但请注意,若要通过IDF组件注册表添加组件,必须确保设备联网,否则下载操作将失败。
最后,我们可以在.c文件中引用esp_jpeg解码库组件,其他组件的操作流程也类似。希望读者能够充分利用IDF组件注册表这一强大功能。
8.2.2 VS Code工程添加组件
在VS Code项目工程中添加IDF组件注册表中的组件十分便捷。您只需按下“Ctrl+Shift+P”快捷键快速进入命令面板,或者通过菜单栏的“查看”选项,选择“命令面板”来打开它。随后,在命令面板中输入“ESP-IDF: Show Component Registry”即可展示出组件注册表,具体操作如图所示。
图8.2.2.1 搜索组件注册表
回车进入ESP-IDF注册表,如下图所示。
图8.2.2.2 打开ESP-IDF注册表
在搜索框中,我们可以方便地查找开发者所需的组件。请注意,下载ESP-IDF注册表中的组件需要在联网环境下进行,因此请确保您的电脑已连接到网络,以便顺利下载所需的组件。下面作者以qrcode为例来讲解。
图8.2.2.3 选择合适的版本,并安装组件
在上图中,首先选择适合的组件版本,随后点击“install”按钮以安装qrcode组件。请务必注意,选择与ESP32-P4芯片适配的组件至关重要,因为并非所有组件都兼容这款芯片。为了筛选出与ESP32-P4兼容的组件,开发者可以在图8.2.2.1中选择“By target”选项,并将其设置为ESP32-P4。这样,您就能清晰地查看到这款芯片所支持的组件列表。
安装组件完成后,我们可在项目工程main文件夹下找到idf_component.yml文件,此时该文件自动添加了qrcode组件等相关信息,如下图所示。
图8.2.2.4 添加qrcode组件
经过项目工程编译后,我们可以在项目工程目录下的managed_components文件夹中找到espressif__qrcode组件。这时,我们可以在.c文件中调用该组件的API函数。
|