0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

[esp32教程]3、利用idf.py創(chuàng)建組件

板凳說(shuō) ? 來(lái)源:板凳說(shuō) ? 作者:板凳說(shuō) ? 2023-05-05 09:05 ? 次閱讀

敘述

今天就不進(jìn)行外設(shè)驅(qū)動(dòng)教學(xué)了,我們來(lái)學(xué)一下如何利用idf.py創(chuàng)建組件。創(chuàng)建組件有什么好處呢,好處有如下2點(diǎn):

  • 可以使得工程變得整潔
  • 可以免去我們重復(fù)編寫某一個(gè)功能點(diǎn),當(dāng)我們?cè)谀骋粋€(gè)工程寫完之后,可以通過(guò)組件引用,直接在其他工程中使用

0、前期準(zhǔn)備

1、參考上一篇文章搭建好esp32環(huán)境

2、準(zhǔn)備好一塊esp32開(kāi)發(fā)開(kāi)發(fā)板(本作者使用了esp32c3作為開(kāi)發(fā)平臺(tái))

1、基礎(chǔ)知識(shí)補(bǔ)充:

組件的創(chuàng)建命令為:idf.py create-component

引用的兩個(gè)關(guān)鍵字:REQUIRES 和 PRIV_REQUIRES,

這兩個(gè)關(guān)鍵字區(qū)別如下:

  • 若組件的頭文件是放在源文件(.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 # 設(shè)置工程使用的芯片
idf.py -C components create-component test #test為組件名
#2、引入組件
#在要引用的文件中,找到CMakeList.txt文件,在文件中添加如下內(nèi)容:
idf_component_register(SRCS "main.c"
                    INCLUDE_DIRS "."
                    PRIV_REQUIRES test #引用組件
                    )
# 如果要引用其他項(xiàng)目的組件需要在最頂層的CMakeLists.txt配置組件路徑,然后再按照2的方式
# 進(jìn)行引用,設(shè)置的路徑的語(yǔ)句為: set(EXTRA_COMPONENT_DIRS  組件路徑)
注意:組件的搜索目錄,默認(rèn)為 IDF_PATH/components、PROJECT_DIR/components和EXTRA_COMPONENT_DIRS

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)發(fā)平臺(tái)

    關(guān)注

    0

    文章

    90

    瀏覽量

    14240
  • 組件
    +關(guān)注

    關(guān)注

    1

    文章

    498

    瀏覽量

    17771
  • ESP32
    +關(guān)注

    關(guān)注

    17

    文章

    943

    瀏覽量

    16902
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VS Code在ESP_IDE終端輸入idf.py set-target esp32s3報(bào)錯(cuò)的原因?

    VS Code在ESP_IDE終端輸入idf.py set-target esp32s3 報(bào)錯(cuò) 報(bào)錯(cuò)信息為 ———————————————————————— Adding \"
    發(fā)表于 06-05 07:55

    idf.py set-target esp32c3無(wú)法生效怎么解決?

    H:~/workspace/esp32/projects/hello_world$ idf.py set-target esp32c3 Adding \"set-target\"\'s
    發(fā)表于 06-06 06:43

    esp-matter使用idf.py編譯light sample報(bào)錯(cuò)怎么解決?

    在搭建好esp-matter后,編譯light sample的時(shí)候報(bào)錯(cuò) rck@ubuntu:~/ESP/esp-matter/examples/light$ idf.py buil
    發(fā)表于 06-11 07:04

    idf.py set-target esp32s3提示錯(cuò)誤是什么原因?qū)е碌??怎么解決?

    D:硬件開(kāi)發(fā)資料esp-idf-v5.0.1examplesperipheralstwaitwai_networktwai_network_master>idf.py
    發(fā)表于 06-12 06:44

    執(zhí)行idf.py set-target esp32時(shí)出現(xiàn)報(bào)錯(cuò)的原因?

    我是按照官方教程一步步走的,但在執(zhí)行idf.py set-target esp32時(shí)出現(xiàn)報(bào)錯(cuò): CMake Error at build/CMakeFiles/git-data
    發(fā)表于 06-20 08:07

    idf.py set-target esp32c3設(shè)置芯片型號(hào)失敗怎么處理?

    %esphello_world idf.py set-target esp32c3 idf.py menuconfig ESP-IDF 4.2 power shell 代碼 中 的
    發(fā)表于 06-21 10:19

    idf.py set-target esp32s2命令無(wú)效的原因?

    idf.py set-target esp32s2命令無(wú)效 只能用idf.py set-target esp32s2beta 這是什么意思?只用用測(cè)試版嗎?對(duì)于穩(wěn)定版本有什么影響,我
    發(fā)表于 06-24 07:42

    按照ESP32-IDF的編程指南操作,運(yùn)行idf.py menuconfig后,運(yùn)行報(bào)錯(cuò)怎么解決?

    請(qǐng)問(wèn)我按照ESP32-IDF的編程指南操作,下載后esp-idf后,運(yùn)行idf.py menuconfig后,運(yùn)行報(bào)錯(cuò),報(bào)錯(cuò)信息如下: Administrator@DE-0011 MINGW64
    發(fā)表于 06-25 06:32

    esp32c3安全啟動(dòng)文檔里的簽名,使用與計(jì)算的簽名和使用idf.py簽名有什么不同?

    esp32c3安全啟動(dòng)文檔里的簽名,使用與計(jì)算的簽名和使用idf.py簽名有什么不同?預(yù)簽名用的是--pub-key,普通的簽名用的是--keyfile?
    發(fā)表于 07-23 08:15

    idf.py add-dependency lvgl==8.3.0添加支持LVGL時(shí),在idf.py set-target esp32s3時(shí)報(bào)錯(cuò)的原因?

    idf.py add-dependency lvgl==8.3.0添加支持LVGL時(shí),命令能成功。但在 idf.py set-target esp32s3時(shí),提示如下錯(cuò)誤:-- Building
    發(fā)表于 02-13 08:51

    求助,除了使用idf.py set-target指令,還能用別的方法修改目標(biāo)芯片嗎?

    我使用官方的方法選擇了芯片,使用命令idf.py set-target esp32c3;接下來(lái),我想直接使用makefile編譯,而不使用idf.py build,但是使用工程下面的makefile
    發(fā)表于 02-21 07:09

    idf.py monitor無(wú)法正常輸出怎么解決?

    weilian@DESKTOP-MMQQ1CA:~/esp32s3_lvgl_480_86box_testdemo20230111$ idf.py -p /dev
    發(fā)表于 03-07 06:23

    idf.py無(wú)法識(shí)別的原因?

    _PATH%\\tools 中。當(dāng)我使用 idf.py 構(gòu)建時(shí),我得到:術(shù)語(yǔ)“idf.py”未被識(shí)別為名稱....我還在安裝 ESP-IDF 時(shí)出現(xiàn)的桌面上運(yùn)行了 ESF-IDF 5.
    發(fā)表于 04-13 06:30

    ESP32ESP-IDF 教學(xué)(五(1))——ESP-IDF的CMake 構(gòu)建系統(tǒng)(Build System)

    系統(tǒng)(Build System)】1、構(gòu)建系統(tǒng)簡(jiǎn)介① 簡(jiǎn)介② 概念2、通過(guò) idf.py 使用構(gòu)建系統(tǒng)3ESP-IDF 的工程文件詳解 及 CMakeList.txt 文件解析【1】ESP-
    發(fā)表于 12-16 16:53 ?24次下載
    <b class='flag-5'>ESP32</b> 之 <b class='flag-5'>ESP-IDF</b> 教學(xué)(五(1))——<b class='flag-5'>ESP-IDF</b>的CMake 構(gòu)建系統(tǒng)(Build System)

    ESP32_C3芯片上手使用指南

    目前bsp/ESP32_C3芯片已支持使用scons進(jìn)行編譯,不再使用之前的idf.py編譯。
    的頭像 發(fā)表于 07-28 17:18 ?1852次閱讀
    <b class='flag-5'>ESP32_C3</b>芯片上手使用指南