必须的环境安装,根据官方来就可以,务必一步不漏!
vscode 安装IDF 教程:
https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/install.md
安装注意可以安装5.0版本,因为5.0适配S3,不必按照其他人说的按照4.xx。
安装配置时,可以看我的配置图片:
下载源选择ESP官方可以不用翻墙。
官方教程测试
之后根据官方来就可以。
官方教程测试(务必测试):vscode-esp-idf-extension/docs/tutorial/basic_use.md at master · espressif/vscode-esp-idf-extension · GitHub
国内镜像,自己去gitee搜索,属于espressif
切记务必测试一下idf例程还有别忘了安装esp-idf-extension.vsix,确保无误后在操作。
esp-idf-extension.vsix 下载就在官方教程后面。
esp-idf-extension.vsix安装方法,下载、解压、托进vscode,然后等待,vscode提示,重启vscode,如果失败或者卡顿请重新操作一遍。
----------------------------正文开始!!-----------------------
以下默认认真看过以上官方教程!!!
本文章不是教你1+1=2而是告诉你细节!
所以请看官方教程,先学会数学逻辑和会简单运算
必须看IDF安装、看IDF测试例程!!
其实报错问题很简单,但查了一堆资料、网站,费时3天,我觉得得公开解决办法,又不是高难度,没有必要遮住
直接上解决方法了,如何找例程,who官方网站都有,至于如何使用vscode打开espidf项目,其实直接用vscode打开这个项目文件夹就可以,不用找espidf插件上打开项目选择项,也不必要去新建,直接打开就行。
who官网教程:
esp-who/README_CN.md at master · espressif/esp-who · GitHub
who官网教程(gitee 镜像): esp-who: esp_who (gitee.com)
可以看到官方讲了官方开发板+官方示例,只需要两步,经过我测试确实没有问题只不过多二步。
使用官方正常网站也可以,但是github不好拉取,很容易失败,所以提供gitee复制库:
WHO: esp-who: esp_who (gitee.com)
git clone --recursive https://gitee.com/starry-night_mc/esp-who
DL: esp-dl: esp-dl (gitee.com)git clone --recursive esp-dl: esp-dl (gitee.com)
新的方法(通用,推荐方法):
首先拉取Who库或者从Github下载(可以压缩包)
然后解压(不用改名,改名原因是因为我看到ESP论坛上讲不可以有-符,但是后面证明肯定可以,否则例程和库为什么起带-名字?)
打开这个文件,找到 components 从这里拉取Who的dl子库!
拉取git库,方式:
1. 在这个文件夹打开cmd窗口,输入git命令。
2.下载压缩包解压。
方法1.在这目录替换目录,输入cmd就可以!!
然后开始配置项目:
随便找一个例程打开,例程架构如下所示:
├── examples
│ ├── cat_face_detection // 猫脸检测示例
│ │ ├── lcd // 结果显示方式为 LCD 屏
│ │ └── terminal // 结果显示方式为终端
│ ├── code_recognition // 一维码/二维码识别示例
│ ├── human_face_detection // 人脸检测示例
│ │ ├── lcd
│ │ └── terminal
│ ├── human_face_recognition // 人脸识别示例
│ │ ├── lcd
│ │ ├── terminal
│ │ └── README.md // 示例的具体说明
│ └── motion_detection // 移动侦测示例
│ ├── lcd
│ ├── terminal
│ ├── web
│ └── README.rst
打开之后:
选择核心ESP32-S3,com和下载方式,IC弹出选择第一个ESP32-S3,UART就可以走USB。
之后:
在复制 测试项目的.vscode,见官方教程- 测试章节,复制这个测试例程中.vscode就可以。
或者自己配置(见官方教程-New 项目),根据操让vscode新建这个文件。
接下来重点是c_cpp_properties.json文件(使用新的方法):
新的方法直接使用一个目录下面通用库: who和dl,而不是在拉取库文件!!!
添加(注意逗号!每个字符串后面都有逗号,类似数组):
“xxxxxxxxxxxxxxxx",
"D:/esp32S3Eye/espWhoMaster/components/**",
"D:/esp32S3Eye/espWhoMaster/components/esp-dl/**"
这些 目录的由来(GitHub ),就是本地下载的库。
在最后 重点!
在项目母目录(不是main下,而是项目)里面的 CMakeLists.txt 文件 打开之后:
CMakeLists.txt 文件 修改为
# The following lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
set(EXTRA_COMPONENT_DIRS D:/esp32S3Eye/espWhoMaster/components)
#set(EXTRA_COMPONENT_DIRS ../../../components)
add_compile_options(-fdiagnostics-color=always)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(cat_face_detection_terminal)
这些 D:/esp32S3Eye/espWhoMaster/components 目录的由来(GitHub ),就是本地下载的库。
最后编译、下载监视
(注意别忘了开始选择核心ESP32-S3,弹出选择第一个,UART就可以走USB)
这个方法缺点:
无法转到,函数定义或者声明。
解决方法,把components 文件夹拖进vscode:
注意不是复制!不要选择复制!