敘述
今天就不進(jìn)行外設(shè)驅(qū)動(dòng)教學(xué)了,我們來(lái)學(xué)一下如何利用idf.py創(chuàng)建組件。創(chuàng)建組件有什么好處呢,好處有如下2點(diǎn):
- 可以使得工程變得整潔
- 可以免去我們重復(fù)編寫(xiě)某一個(gè)功能點(diǎn),當(dāng)我們?cè)谀骋粋€(gè)工程寫(xiě)完之后,可以通過(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
審核編輯:湯梓紅
-
開(kāi)發(fā)平臺(tái)
+關(guān)注
關(guān)注
0文章
97瀏覽量
14677 -
組件
+關(guān)注
關(guān)注
1文章
532瀏覽量
18377 -
ESP32
+關(guān)注
關(guān)注
21文章
1012瀏覽量
19097
發(fā)布評(píng)論請(qǐng)先 登錄
VS Code在ESP_IDE終端輸入idf.py set-target esp32s3報(bào)錯(cuò)的原因?
idf.py set-target esp32c3無(wú)法生效怎么解決?
esp-matter使用idf.py編譯light sample報(bào)錯(cuò)怎么解決?
idf.py set-target esp32s3提示錯(cuò)誤是什么原因?qū)е碌??怎么解決?
執(zhí)行idf.py set-target esp32時(shí)出現(xiàn)報(bào)錯(cuò)的原因?
idf.py set-target esp32c3設(shè)置芯片型號(hào)失敗怎么處理?
idf.py set-target esp32s2命令無(wú)效的原因?
按照ESP32-IDF的編程指南操作,運(yùn)行idf.py menuconfig后,運(yùn)行報(bào)錯(cuò)怎么解決?
esp32c3安全啟動(dòng)文檔里的簽名,使用與計(jì)算的簽名和使用idf.py簽名有什么不同?
用idf.py add-dependency lvgl==8.3.0添加支持LVGL時(shí),在idf.py set-target esp32s3時(shí)報(bào)錯(cuò)的原因?
求助,除了使用idf.py set-target指令,還能用別的方法修改目標(biāo)芯片嗎?
idf.py monitor無(wú)法正常輸出怎么解決?
idf.py無(wú)法識(shí)別的原因?
ESP32 之 ESP-IDF 教學(xué)(五(1))——ESP-IDF的CMake 構(gòu)建系統(tǒng)(Build System)

評(píng)論