敘述
今天就不進行外設驅動教學了,我們來學一下如何利用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文章
94瀏覽量
14319 -
組件
+關注
關注
1文章
517瀏覽量
17922 -
ESP32
+關注
關注
18文章
978瀏覽量
17525
發布評論請先 登錄
相關推薦
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次下載
評論