VS Cose + PlatformIO +ESP32-S3 + ESPIDF开发环境安装卡壳持续等待问题解决

问题描述与背景

搭建VS Code + PlatformIO + ESP32-S3 + ESP-IDF 开发环境时遇到了下载问题、安装问题、新建项目持续等待、编译报错等问题,折腾了很长时间,静下心来逐个分析问题,借助大模型、网络帖子等多种方式,终于解决,简单总结笔记如下。

理想状态下官方给的安装步骤:

    1. 下载VS,安装VS
    1. 在VS的Extension中检索PlatformIO IDE,点击Install,等待安装完成
    1. 安装成功后,重启,新建Project
    1. 等待新建成功,
    1. build项目,确认环境是否安装成功。

实际安装遇到的问题

    1. 没有安装依赖环境(如C/C++,ESP-IDF插件、python环境、git)
      如果没有安装会导致编译时报各种错,例如下面这2个报错是python环境和git的问题,提前安装好依赖环境即可解决这些问题。
      No pyvenv.cfg file
      Reading CMake configuration...
      -- git rev-parse returned 'fatal: not a git repository (or any of the parent directories): .git'
      -- Configuring incomplete, errors occurred!
    1. 国外源,安装、下载、初始化,均会遇到很慢,或漏下,下载不全出的错误,需要持续等待很长时间,最后还有可能报错。我后来抛弃了让IDE自己下载安装文件的方式,采用了pip下载并安装,成功解决了以上这些问题。

安装过程

  1. VS安装成功后,不能急着安装 PlatformIO ,先安装依赖环境C/C++
  2. 然后安装ESP-IDF,我安装的是ESP-IDF5.4
  3. 接着安装python,注意版本要与ESP-IDF的版本匹配,我选择了python3.10,比较通配
  4. 还要安装git,后续再编译工程文件时idf.cmake中 会有对Git的引用。如果不安装也会报错
  5. 配置参数:找到settings,随便找一个edit in settings.json进入编辑页面
  6. 增加settings如红框所示:配置指定了platformio-ide不使用ide默认都PIOCore和Python,指向用户自己安装的python3.10的路径,设定阿里镜像,缓解速度问题( "platformio-ide.useBuiltinPIOCore": false,
    "platformio-ide.useBuiltinPython": false,
    "platformio-ide.customPATH": "C:\Users\chend\AppData\Local\Programs\Python\Python310\Scripts", /* 设置不自动更新 */
    "platformio-ide.customPyPiIndexUrl": "https://mirrors.aliyun.com/pypi/simple/",)
  7. 设置好参数后,在vs中进入extensions,找到platformIO IDE,点击install,等待几分钟,安装好后
  8. 打开cmd,使用pip下载platformio:(pip install -i https://pypi.tuna.tsinghua.edu.cn/simple platformio)

    pip安装好以后,查看一下,可以看到platformIO的版本
  9. 用pio命令下载开发板的工具文件(pio project init --board esp32-s3-devkitc-1)

    等待十几分钟,提示project初始化成功
  10. 打开vs code,点击左侧的小蚂蚁头-QuickAccess-Open-New Project,新建esp32-s3的项目,选择乐鑫的esp32-s3开发板,框架选择ESPidf,几分钟后即可新建完成(再也不会让等待很久还是不停的下载东西,最后还无法编译通过)
  11. 点击对勾,尝试编译新项目,编译成功,环境问题终于解决了!这一路走过的弯路和各种尝试,都是值得的,总结一句话,遇到问题分析、解决,循环,只要够坚定,试错99次,第一百次也就是正确方法。
相关推荐
zhangzeyuaaa4 分钟前
深入理解 Python GIL:从机制到释放时机
java·网络·python
PSLoverS7 分钟前
c++如何读取和修改可执行文件的PE头信息_IMAGE_NT_HEADERS解析【进阶】
jvm·数据库·python
gmaajt15 分钟前
React Native 单元测试中第三方依赖的正确 Mock 策略
jvm·数据库·python
a95114164219 分钟前
宝塔面板数据库查询响应慢_利用慢查询日志进行优化
jvm·数据库·python
Jun62620 分钟前
【STM32】HMC5883驱动(带航向角计算)
stm32·单片机·嵌入式硬件
zhangzeyuaaa26 分钟前
深入理解 Python 进程间通信:Queue 与 Pipe 实战解析
网络·python·中间件
zxsz_com_cn27 分钟前
设备预测性维护在物联网中的技术革新与应用实践
物联网
2401_8314194437 分钟前
如何用 http 模块创建一个基础的 Web 服务器处理请求
jvm·数据库·python
pele38 分钟前
Redis如何防止AOF文件无限增大_触发BGREWRITEAOF命令进行日志重写
jvm·数据库·python
qq_4142565738 分钟前
golang如何设计HTTP中间件链_golang HTTP中间件链设计方法
jvm·数据库·python