目录

概述

测试平台

1.创建新项目

2.新项目配置

3.创建自定义组件(.c .h文件)

4.如何快速查看需要引用的组件

奇怪BUG

1.官方组件无法引用


概述

我将使用ESP-IDF编程环境创建一个自定义组件并在新组件中引用官方的组件。

测试平台

芯片:ESP32S3

ESP-IDF版本:5.4.2

1.创建新项目

这没啥说的,按照下图顺序进行新项目的创建就行。

图1.1 创建新项目1

图1.2 创建新项目2

图1.3 创建新项目3

2.新项目配置

打开新项目的SDK配置页面,一般需要配置flash、ram大小,其他设置一般不常用,需要根据具体需求进行设置,我的板子(ESP32-S3-N8R2)就只需要修改Flash大小(8MB)和ram大小(2MB)。设置过程如下图所示:

图2.1 配置SDK的flash大小

图2.2 配置SDK的ram大小

在图2.2的操作后SDK的配置也就结束了,记得保存一下,这个"SDK 配置编辑器"页面可以不关闭,一直开着,不然关闭一次再打开,真心费时间得一直等待。

3.创建自定义组件(.c .h文件)

我习惯采用ESP-IDF提供的创建组件方法,这样还省事,所以我这里也就搞这一种。创建过程如下图所示:

在成功创建组件后,我们的CMakeList.txt文件已经被写好了,但没有引用官方组件库,所以我们这里就可以仅添加我们所需要的组件就行,方式如下:

修改后如下:

到这里自定义组件也就创建完毕了,可以正常进行编写、使用。

4.如何快速查看需要引用的组件

这里只是做一个补充,是我自己最近使用的一个查找组件的方式,但说到底最根本的还是翻官方文档,所以我这里说的方法不是很标准,仅仅是我使用的方式。

例如我想引入"esp_flash.h",但我直接在CMakeList.txt文件中写入"REQUIRES    esp_flash"会报错,无法编译,因为习惯上我认为esp_flash是一个组件,但其实它并不是,后来我才知道它所属组件是spi_flash,我查找到它的方式也很粗暴,本质上"esp_flash.h"文件肯定在esp-idf的components文件夹中,那就可以直接在components文件中硬找esp_flash.h文件,但这太不切实际了,还会浪费时间,不过我使用everthing,那就是另一回事了,直接搜索如下:

这个方式比较奇葩,但也确实我感觉下来比查官方文档快一些。

奇怪BUG

1.官方组件无法引用

现象如下图所示

在新创建的hello_world工程无法直接调用官方的"driver/gpio.h"组件,这种情况的原因往往是出现在CMakeList.txt文件中,官方的这个示例,问题也出在CMakeList.txt文件中,解决如下:

这样解决我不知道合不合理,这也是我看别人的解决方式。。。不知道是否合理,知道情况的大佬欢迎评论区留言。

不过我后来又想了想,这可能就不是BUG,因为示例确实能跑,可能只是我自己认为的BUG。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐