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

    文章

    87

    浏览量

    14179
  • 组件
    +关注

    关注

    1

    文章

    336

    浏览量

    17584
  • ESP32
    +关注

    关注

    13

    文章

    896

    浏览量

    15815
收藏 人收藏

    评论

    相关推荐

    ESP-IDF的相关资料推荐

    系统(Build System)】1、构建系统简介① 简介② 概念2、通过 idf.py 使用构建系统3ESP-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

    ESP32ESP-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次下载
    <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 1419次阅读
    <b class='flag-5'>ESP32</b>_C3芯片上手使用指南