ESP32 ESP-IDF开发环境配置

embedded/2024/10/25 14:01:11/

目录

这里只列出了WIndows和Ubuntu下的环境配置教程。

一、配置ESP32开发环境

Ubuntu开发环境(个人原因无法调试,其他正常)

配置开发环境

WIndows开发环境 

vscode+ESP-IDF

CLion+ESP-IDF


一、配置ESP32开发环境

配置开发环境挺麻烦的,其实可以直接使用ESP-IDF 5.3 PowerShell\ESP-IDF 5.3 CMD 这些终端进行编译、烧录和调试等等

Ubuntu开发环境(因为个人原因无法调试,其他正常)

配置开发环境

  1. 虚拟机创建Ubuntu20.04.6 server

    • 注意在安装的时候勾选SSH server
  2. 安装网络工具 :

    • sudo apt-get install net-tools
    • 输入ifconfig查看ip
    • 使用MobaXterm登录
  3. 修改pip源为阿里云源

    • 在根目录创建mkdir .pip文件夹
    • 创建vim pip.conf文件
    • 新增如下内容
    [global]
    index-url=http://mirrors.aliyun.com/pypi/simple/
    [install]
    [trusted-host=mirrors.aliyun.com](<http://trusted-host=mirrors.aliyun.com/>)
    
  4. 修改清华源

    使用国内源更稳定,还能加速下载。 官网如下: ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror (如果你是别的系统,可以输入lsb_release -a来查看当前的系统,然后根据清华源的官网的提示来更换相应地文本) 我这里是Ubuntu 20.04 LTS (focal)

    1. 首先备份系统原有的更新源配置文件: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

    2. 然后使用文本编辑器(如sudo vim /etc/apt/sources.list)打开sources.list文件, 将其内容替换为清华的源。以下是 **Ubuntu 20.04(flcal)**的清华源示例:

      # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
      deb <https://mirrors.tuna.tsinghua.edu.cn/ubuntu/> focal main restricted universe multiverse
      # deb-src <https://mirrors.tuna.tsinghua.edu.cn/ubuntu/> focal main restricted universe multiverse
      deb <https://mirrors.tuna.tsinghua.edu.cn/ubuntu/> focal-updates main restricted universe multiverse
      # deb-src <https://mirrors.tuna.tsinghua.edu.cn/ubuntu/> focal-updates main restricted universe multiverse
      deb <https://mirrors.tuna.tsinghua.edu.cn/ubuntu/> focal-backports main restricted universe multiverse
      # deb-src <https://mirrors.tuna.tsinghua.edu.cn/ubuntu/> focal-backports main restricted universe multiverse# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
      deb <http://security.ubuntu.com/ubuntu/> focal-security main restricted universe multiverse
      # deb-src <http://security.ubuntu.com/ubuntu/> focal-security main restricted universe multiverse# 预发布软件源,不建议启用
      # deb <https://mirrors.tuna.tsinghua.edu.cn/ubuntu/> focal-proposed main restricted universe multiverse
      # # deb-src <https://mirrors.tuna.tsinghua.edu.cn/ubuntu/> focal-proposed main restricted universe multiverse
      

      在vim文本编辑器下,清除所有文本需要进入命令模式(按 Esc 键)。 按shift + :键开始输入命令。 输入 %d 然后按回车键。表示全部删除。 输入然后输入i 进入编辑模式,开始输入(Ctrl+Shift+V可以粘贴)。 输入完毕后按ESC键,再按shift + :输入set noreadonly取消文件只读设置 然后shift + : 输入wq 然后回车(w为保存,q为退出)

      • 直接使用 su 登录root 也很方便。

      恭喜啊!!到这一步,你就成功的将软件源配置为清华源了。 可以验证一下,输入sudo apt update 系统将从清华源获取软件包信息并进行更新 并且不会出现错误提示。

  5. 安装各种必要的工具

    • sudo apt-get install git wget flex bison gperf python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 net-tools
  6. 新建esp32目录

    • mkdir esp32
    • cd esp32
  7. 拉取gitee工具

    • git clone esp-gitee-tools: **重要**。此仓库包含给 gitee 其他仓库提供的扩展工具,包括 submodule 更新、开发工具安装等。

    • 执行gitee工具切换镜像脚本

      • cd esp-gitee-tools
      • ./jihu-mirror.sh set
      • 上面这句命令,会将github的地址自动替换成jihulab上的镜像地址,这样就不用担心github的访问问题了

      然后我们可以理直气壮的拉取github 源码了,先回到esp32目录,

  8. 拉取esp-idf源码

    • 回到ESP32目录 cd ..
    • 克隆github仓库 git clone --recursive https://github.com/espressif/esp-idf.git
    • --recursive:这个选项告诉 Git 在克隆仓库的同时,递归地克隆该仓库所包含的所有子模块。
  9. 切换esp-idf版本分支到v5.2(大版本不兼容,小版本一般兼容)

    • cd esp-idf
    • 切换分支到5.2版本 git checkout v5.2
    • git branch 可以看一下到底切换成功了没
    • 把相应的子模块切换到对应的版本 git submodule update --init --recursive
  10. 安装编译工具

    • ../esp-gitee-tools/install.sh
  11. 设置临时环境变量

    • source export.sh
  12. 添加全局环境变量

    • vim ~/.profile
    • 添加一行:source esp32/esp-idf/export.sh
    • 也就是登录这个用户自动运行 这样就能不会退出而不能编译了
  13. 下载课程配套源码

    • cd ~/esp32
    • git clone --recursive esp32-board: esp32开发板配套的经典例程
  14. 编译

    • cd esp32-board/helloworld
    • idf.py build
    • 如果没红色或黄色报错就成功了。
  15. vscode连接

    • 下载ssh插件

    • 配置ssh插件登录格式

      Host ESP32_UbuntuHostName 192.168.128.134User liuPort 22
      
    • 右键在当前界面登录就OK 了。

  16. 通过本地vscode在Ubuntu vscode-server下载 C/C++ 、乐鑫ESP-IDF插件

  17. 装好后,最好重启一下VSCode,重复上述步骤登录ubuntu和打开helloworld文件夹,然后我们回到我们的helloworld工程

  18. 按下ctrl+shift+p,弹出搜索框,搜索ESP-IDF:Add vscode Configuration Folder,在下拉列表出现后,点击一下就可以了,这步的目的是为了把esp-idf里面的源码路径也加到我们的工程中,现在我们可以通过按着ctrl键点击函数或变量进行跳转看代码了

  19. 设置远程插件的C/C++扩展设置。搜索workspace ,把CPU占用调整为medium 中等。否则会占用100% CPU。

  20. 设置USB串口权限

    • sudo usermod -aG dialout xxx xxx为用户名
    • exit 退出,然后r重启一下
  21. 设置虚拟机USB为 USB3.1,防止烧录时提示一直正在使用

  22. 插入USB,在虚拟机设置连接USB到虚拟机。

  23. 烧录 idf.py flash

  24. sudo chmod 777 /dev/ttyUSB0 提升权限

  25. idf.py monitor 调试

  • Ctrl+]退出调试

注意,esp-idf的版本记得选择v5.2 要一样的~,这个如果是Ubuntu server版本,可以用vscode连接之后 设置, 如果是Ubuntu desktop版本,可以直接在桌面 插件设置~

WIndows开发环境 

vscode+ESP-IDF

(其实vscode配置很简单,但是我貌似因为python环境或者别的原因一直出问题,所以转战CLion了)

CLion+ESP-IDF

  1. 下载安装离线安装包

  2. 基础指令

    • idf.py create-project 路径指令可以创建一个基础的ESP模板
    • idf.py build dome1 可以编译这个dome
    • idf.py monitor 是调试 监视
  3. 使用idf.py create-project 路径创建一个demo

  4. 在CLion 软件添加一个新的环境,编辑环境变量(ESP32-S2)

    • IDF_PATH=D:\Espressif\frameworks\esp-idf-v5.3.1;ESPPORT=COM15;IDF_TARGET=esp32

    • 在PATH添加下面这段环境目录(选中部分)

  5. 编辑工具链为 D:\Espressif\espidf_source.bat

    @call D:\\Espressif\\python_env\\idf5.3_py3.11_env\\Scripts\\activate.bat
    @call D:\\Espressif\\frameworks\\esp-idf-v5.3.1\\export.bat
    @call D:\\Espressif\\idf_cmd_init.bat
    
  6. 重新加载CMake项目

  7. 构建app

  8. 切换flash烧录

  9. 针对部分monitor不能用(提示 Monitor requires standard input to be attached to TTY. Try using a different terminal.错误),经查:可以使用外部模拟~

    参考:ESP-IDF Monitor error: Monitor requires standard input to be attached to TTY : CPP-34647

  10. 使用CLion 打开我们创建的demo,然后进行编译、烧录、调试。测试一下。

后续我是根据CLion 2024.进行的ESP32开发。 小技巧:第一次编译(app)之后,后续可以直接选择flash,否则会重新编译,又得等老久了。


http://www.ppmy.cn/embedded/132346.html

相关文章

flashback database 闪回数据库

1.修改闪回区大小&#xff0c;路径&#xff0c;保留时间 SQL> show parameter db_recovery_file_dest SQL> show parameter db_flashback_retention_targetSQL> alter system set db_recovery_file_dest_size20G scopeboth;System altered.SQL> alter system set …

深入计算机语言之C++:类与对象(中)

&#x1f511;&#x1f511;博客主页&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列专栏&#xff1a;从C语言到C语言的渐深学习 欢迎来到泊舟小课堂 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 一、默认成员函数 如果一个类中什么成员都没有&…

跨平台 OTT 项目使用 Google Analytics 替代 KPI log

关于 Google Analytics https://developers.google.com/analytics/devguides/collection/ga4?hlzh-cn Google Analytics 是一款分析服务&#xff0c;可帮助您衡量各种平台上的流量和互动情况&#xff0c; 例如网站和应用利用 Google Analytics&#xff0c;您可以优化您的广告…

.net framework 3.5sp1插件怎么安装

以下是在不同操作系统电脑上安装.NET Framework 3.5 SP1 的几种常见方法&#xff1a; 一、Windows 10 及以上操作系统&#xff1a; 1.在线安装&#xff08;需要网络连接稳定&#xff09;&#xff1a; 按键盘上的 Windows 键&#xff0c;键入 “Windows 功能”&#xff0c;然…

【ubuntu20.04】【ROS Noetic】【ROS安装】【Website may be down.】【gpg: 找不到有效的 OpenPGP 数据。】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、登入www.ros.org1.Setup your sources.list2.Set up your keys中间出了点问题 gpg: 找不到有效的 OpenPGP 数据。4.Installation下载安装ros5.环境参数的配…

火山引擎数据飞轮线上研讨会即将开启,助力消费品牌双十一造爆款

随着双十一的临近&#xff0c;各大品牌方的备战工作已进入紧张而有序的倒计时阶段。这场持续十多年的电商大促&#xff0c;对消费者来说是购物狂欢节&#xff0c;对各大品牌方来说&#xff0c;则是更是品牌实力与策略的比拼。面对日益激烈的市场竞争&#xff0c;如何更好地撬动…

无线网卡知识的学习--nl80211.h核心源码分析

此代码中包含了以下2个部分: 1. 包含了与cfg80211子系统相关的函数声明,这些函数用于Linux内核中的网络配置和状态通知。2. 这些函数用于与用户空间应用程序(如iw、wpa_supplicant等)进行通信,以便它们可以配置和管理无线网络接口。 /* SPDX-License-Identifier: GPL-2.…

sharpkeys-键盘部分按键不好用,用其它不常用按键代替

sharpkeys-键盘部分按键不好用&#xff0c;用其它不常用按键代替 文章目录