基于ESP-IDF环境的ESP32-C3开发踩坑
No such file or directory
昨天移植完smartconfig配网后,想着把蓝牙配网也添加进去,打开demo,阅读和修改blu_fi后,下载到ESP32-C3里面,跑了一下,没问题,随进行搬砖。
在用户组件components里新建文件夹及文件,内容如下
|---components
| |---blu_fi //蓝牙配网例程,需要用到乐鑫的EspBluFi.app
| | |---bsp_blu_fi.c
| | |---CMakeLists
| | |---include
| | | |---bsp_blu_fi.h
因为刚接触ESP-IDF不久,抱着学习和踩坑的心态,手动添加了以上内容,然后再添加头文件,进行编译。(一般笔者会先建立文件结构,然后添加头文件后进行编译,如果没问题的话,再编写内容,若在编译的过程中报错,就证明是代码写的有问题)然后就报了一个ERROR,即上面所描述的No such file or directory,笔者在添加其他的组件时,也曾遇到过这样的问题,在组件的CMakelists里指定系统组件的路径即可编译通过,然后检查CMakelists,内容如下
idf_component_register(SRCS "bsp_blu_fi.c"
INCLUDE_DIRS "include"
REQUIRES nvs_flash
esp_event
esp_wifi
wpa_supplicant
bt
)
# PRIV_REQUIRES 该参数指定对其他自定义组件的依赖,即私有依赖项
# REQUIRES 该参数指定对系统组件的依赖,即公共依赖项
#
# 假设 esp_wpa2.h 在components/wpa_supplicant/esp_supplicant/include下,则
# REQUIRES里面只需要添加 wpa_supplicant即可
因为要用到蓝牙组件,esp_bt.h,通过查找路径可得知esp_bt.h在componentsbt\include\esp32\include下面,遂在REQUIRES里添加bt变量,但是死活还是不通过,各种尝试还是不行,最后对比原工程的源码进行分析,在sdkconfig里发现bt没有使能。最后执行idf.py menuconfig
Component config -->Bluetooth Enable
再次对项目进行编译,项目编译通过