叙述
今天就不进行外设驱动教学了,我们来学一下如何利用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文章
93浏览量
14263 -
组件
+关注
关注
1文章
504浏览量
17799 -
ESP32
+关注
关注
17文章
955浏览量
17068
发布评论请先 登录
相关推荐
VS Code在ESP_IDE终端输入idf.py set-target esp32s3报错的原因?
VS Code在ESP_IDE终端输入idf.py set-target esp32s3 报错
报错信息为
————————————————————————
Adding \"
发表于 06-05 07:55
idf.py set-target esp32c3无法生效怎么解决?
H:~/workspace/esp32/projects/hello_world$ idf.py set-target esp32c3
Adding \"set-target\"\'s
发表于 06-06 06:43
esp-matter使用idf.py编译light sample报错怎么解决?
在搭建好esp-matter后,编译light sample的时候报错
rck@ubuntu:~/ESP/esp-matter/examples/light$ idf.py buil
发表于 06-11 07:04
idf.py set-target esp32s3提示错误是什么原因导致的?怎么解决?
D:硬件开发资料esp-idf-v5.0.1examplesperipheralstwaitwai_networktwai_network_master>idf.py
发表于 06-12 06:44
执行idf.py set-target esp32时出现报错的原因?
我是按照官方教程一步步走的,但在执行idf.py set-target esp32时出现报错:
CMake Error at build/CMakeFiles/git-data
发表于 06-20 08:07
idf.py set-target esp32c3设置芯片型号失败怎么处理?
%esphello_world
idf.py set-target esp32c3
idf.py menuconfig
ESP-IDF 4.2 power shell
代码 中 的
发表于 06-21 10:19
idf.py set-target esp32s2命令无效的原因?
idf.py set-target esp32s2命令无效 只能用idf.py set-target esp32s2beta
这是什么意思?只用用测试版吗?对于稳定版本有什么影响,我
发表于 06-24 07:42
按照ESP32-IDF的编程指南操作,运行idf.py menuconfig后,运行报错怎么解决?
请问我按照ESP32-IDF的编程指南操作,下载后esp-idf后,运行idf.py menuconfig后,运行报错,报错信息如下:
Administrator@DE-0011 MINGW64
发表于 06-25 06:32
esp32c3安全启动文档里的签名,使用与计算的签名和使用idf.py签名有什么不同?
esp32c3安全启动文档里的签名,使用与计算的签名和使用idf.py签名有什么不同?预签名用的是--pub-key,普通的签名用的是--keyfile?
发表于 07-23 08:15
用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
求助,除了使用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-07 06:23
idf.py无法识别的原因?
_PATH%\\tools 中。当我使用 idf.py 构建时,我得到:术语“idf.py”未被识别为名称....我还在安装 ESP-IDF 时出现的桌面上运行了 ESF-IDF 5.
发表于 04-13 06:30
ESP32 之 ESP-IDF 教学(五(1))——ESP-IDF的CMake 构建系统(Build System)
系统(Build System)】1、构建系统简介① 简介② 概念2、通过 idf.py 使用构建系统3、ESP-IDF 的工程文件详解 及 CMakeList.txt 文件解析【1】ESP-
发表于 12-16 16:53
•24次下载
评论