前言

  对于要封装自己的库,在ESP-IDF中,可以采用构建组件的方式导入,而不是单纯在文件夹下导入.h.c文件,不然一旦要导入的文件过多,它们背后的依赖可能就会相互交叉,不在方便移除和复用。本文就分别讲述:构建自己组件导入官方组件。基于VsCdoe+ESP-IDF V5.4.0环境。

相关链接:构建系统 - ESP32 - — ESP-IDF 编程指南 v5.4 文档 (espressif.com)Search • ESP Component Registry (espressif.com)

构建自己组件

下面以封装官方的GPIO库为MyGPIO组件为目的。进入项目创建导向,配置为template-app模板创建项目。

手动构建步骤:

文字步骤:

  1. 项目文件夹下创建components 组件文件夹
  2. 创建组件文件夹MyGPIO,及其文件组件.h组件.cCMakeLists.txt
# 下述省略其它无关文件,只列出操作相关文件结构
- MyProject/
	- components/
		- MyGPIO/
			- MyGPIO.h
			- MyGPIO.c
			- CMakeLists.txt

CMakeLists.txt内容:

idf_component_register(SRCS "MyGPIO.c"
                    INCLUDE_DIRS "."
                    REQUIRES driver )

  • idf_component_register:这是一个 ESP-IDF 提供的宏,用于注册组件
  • SRCS "MyGPIO.c":指定组件的源文件为 MyGPIO.c
  • INCLUDE_DIRS ".":指定组件的头文件目录为当前目录(. 表示当前目录)
  • REQUIRES driver:指定该组件依赖于 driver 组件(因为要导入 "driver/gpio.h"所以才要引入,如果没有依赖其它组件,该属性可以省略)
  1. 清除构建 -> 构建项目 就能够在main.c中调用该组件库,并使用了。
#include <stdio.h>
#include "MyGPIO.h"

void app_main(void)
{

}

图片步骤:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

快捷构建步骤:

基于插件功能快速开始

文字步骤:

  1. 点击顶部搜索处,选择显示并运行命令,或者直接 Ctrl + Shift + P 直接打开命令栏。搜索并点击ESP-IDF:CreateNewESP-IDFComponent,输入组件名称可自动生成基本文件。

  2. 可以看出,生成的文件层级,多了个/include专门管理.h文件的,方便在多个库文件的情况下管理,在上述手动创建中我就没有分库文件夹,除此之外组件的CMakeLists.txt也不同了,毕竟库文件导入路径不同了。当然这里就不深究了,感兴趣的可以去看下CMake的语句的含义。

图文步骤:

在这里插入图片描述

导入官方组件

下面以导入0.96寸OLED常用的SSD1306组件库,为目的。

Espressif组件管理器:Search • ESP Component Registry (espressif.com)

文字步骤:

  1. 组件管理器中搜索,存在该库。点击查看信息,选择最新版本。一定要选择版本,不然README文件,可能会出不来。
  2. 复制右侧的导入命令,到VsCode的项目终端中执行。执行完成后/main文件夹下,会生成idf_component.yml文件。
  3. 清除构建 -> 构建项目 就能够在main.c中调用该组件库,并使用了。且会在项目文件夹下生成managed_components文件夹。

图片步骤:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Logo

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

更多推荐