0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

[esp32教程]3、利用idf.py创建组件

板凳说 来源:板凳说 作者:板凳说 2023-05-05 09:05 次阅读

叙述

今天就不进行外设驱动教学了,我们来学一下如何利用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

    ESP32ESP-IDF 教学(五(1))——ESP-IDF的CMake 构建系统(Build System)

    系统(Build System)】1、构建系统简介① 简介② 概念2、通过 idf.py 使用构建系统3ESP-IDF 的工程文件详解 及 CMakeList.txt 文件解析【1】ESP-
    发表于 12-16 16:53 24次下载
    <b class='flag-5'>ESP32</b> 之 <b class='flag-5'>ESP-IDF</b> 教学(五(1))——<b class='flag-5'>ESP-IDF</b>的CMake 构建系统(Build System)

    ESP32_C3芯片上手使用指南

    目前bsp/ESP32_C3芯片已支持使用scons进行编译,不再使用之前的idf.py编译。
    的头像 发表于 07-28 17:18 1914次阅读
    <b class='flag-5'>ESP32_C3</b>芯片上手使用指南