叙述
今天就不进行外设驱动教学了,我们来学一下如何利用idf.py创建组件。创建组件有什么好处呢,好处有如下2点:
- 可以使得工程变得整洁
- 可以免去我们重复编写某一个功能点,当我们在某一个工程写完之后,可以通过组件引用,直接在其他工程中使用
0、前期准备
1、参考上一篇文章搭建好esp32环境
2、准备好一块esp32开发开发板(本作者使用了esp32c3作为开发平台)
1、基础知识补充:
组件的创建命令为:idf.py create-component
引用的两个关键字:REQUIRES 和 PRIV_REQUIRES,
这两个关键字区别如下:
- 若组件的头文件是放在源文件(.c文件)就是使用 PRIV_REQUIRES,
- 若组件的头文件是在放在要引入的头文件(.h文件)中用使用REQUIRES
idf.py -C components create-component test #test为组件名
2、使用例子
# 1、新建工程
idf.py create-project project_test # 新建工程
cd project_test
idf.py set-target esp32c3 # 设置工程使用的芯片
idf.py -C components create-component test #test为组件名
#2、引入组件
#在要引用的文件中,找到CMakeList.txt文件,在文件中添加如下内容:
idf_component_register(SRCS "main.c"
INCLUDE_DIRS "."
PRIV_REQUIRES test #引用组件
)
# 如果要引用其他项目的组件需要在最顶层的CMakeLists.txt配置组件路径,然后再按照2的方式
# 进行引用,设置的路径的语句为: set(EXTRA_COMPONENT_DIRS 组件路径)
注意:组件的搜索目录,默认为 IDF_PATH/components、PROJECT_DIR/components和EXTRA_COMPONENT_DIRS
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
开发平台
+关注
关注
0文章
87浏览量
14179 -
组件
+关注
关注
1文章
336浏览量
17584 -
ESP32
+关注
关注
13文章
896浏览量
15815
发布评论请先 登录
相关推荐
ESP-IDF的相关资料推荐
系统(Build System)】1、构建系统简介① 简介② 概念2、通过 idf.py 使用构建系统3、ESP-IDF 的工程文件详解 及 CMakeList.txt 文件解析【1】ESP-
发表于 02-15 06:06
idf.py monitor无法正常输出的原因?怎么解决?
weilian@DESKTOP-MMQQ1CA:~/esp32s3_lvgl_480_86box_testdemo20230111$ idf.py -p /dev
发表于 02-09 07:34
用idf.py add-dependency lvgl==8.3.0添加支持LVGL时,在idf.py set-target esp32s3时报错的原因?
idf.py add-dependency lvgl==8.3.0添加支持LVGL时,命令能成功。但在 idf.py set-target esp32s3时,提示如下错误:-- Building
发表于 02-13 08:51
ESP32C3编出来的组件静态库不完整是什么原因?
5131KB(使用GNU make编译,在工程目录下执行 make即可),而 ESP32C3平台编出来的 libmbedtls.a只有 128KB(因为平台限制,使用的 cmake编译,直接使用 idf.py build编译的)。求指教这个是什么原因?
发表于 02-15 07:42
用官方文档的idf.py命令创建工程出错是怎么回事?
C:\esp-idf>idf.py create-project --path my_projects my_new_projectUsage: idf.py create-project
发表于 02-16 07:36
get started指南进行编译环境配置,运行idf.py set-target esp32报错怎么解决?
今天根据官网提示的get started指南 进行编译环境配置,但运行idf.py set-target esp32 ,出现如下问题,有大佬遇到过吗?CMake Error at /Users
发表于 02-17 08:24
求助,除了使用idf.py set-target指令,还能用别的方法修改目标芯片吗?
我使用官方的方法选择了芯片,使用命令idf.py set-target esp32c3;接下来,我想直接使用makefile编译,而不使用idf.py build,但是使用工程下面的makefile
发表于 02-21 07:09
idf.py monitor无法正常输出是怎么回事?
weilian@DESKTOP-MMQQ1CA:~/esp32s3_lvgl_480_86box_testdemo20230111$ idf.py -p /dev
发表于 03-03 08:44
idf.py monitor无法正常输出怎么解决?
weilian@DESKTOP-MMQQ1CA:~/esp32s3_lvgl_480_86box_testdemo20230111$ idf.py -p /dev
发表于 03-07 06:23
esp32-c3工程中怎么创建多个freertos任务?
怎么实现呢?如果芯片设置成ESP32(idf.py set-target esp32),可以用带有多任务创建的例程。也可以编译成功。就是不知道当把芯片选成
发表于 03-09 07:15
idf.py无法识别的原因?
_PATH%\\tools 中。当我使用 idf.py 构建时,我得到:术语“idf.py”未被识别为名称....我还在安装 ESP-IDF 时出现的桌面上运行了 ESF-IDF 5.
发表于 04-13 06:30
【FireBeetle 2 ESP32-S3开发板体验】IDF体验点亮LED灯
set-target esp32s3
4、打开配置 idf.py menuconfig,进入Example Configuration目录下面
5、进入blinktype配置,选中
发表于 07-30 11:47
ESP32-C3的编程方式
hello_world
idf.py set-target esp32c3
idf.py menuconfig
其中menuconfig是配置相关的设置,这里可以配置Wi-Fi的SSID,等等,由于
发表于 08-16 06:57
ESP32 之 ESP-IDF 教学(五(1))——ESP-IDF的CMake 构建系统(Build System)
系统(Build System)】1、构建系统简介① 简介② 概念2、通过 idf.py 使用构建系统3、ESP-IDF 的工程文件详解 及 CMakeList.txt 文件解析【1】ESP-IDF
发表于 12-16 16:53
•20次下载
评论