ESP32开发环境的搭建

news2025/1/16 16:49:23

ESP32开发环境的搭建

Windows11+WSL2 Ubuntu22.04

下载ESP32开发所需的库和工具链

  • 下载ESP-IDF库
  • 安装必要的工具
    sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev cutecom
    
  • esp-idf工具链安装
    esp-idf-v5.1.zip库解压至安装目录,这里将解压的目录esp-idf-v5.1重命名为.esp-idf,进入.esp-idf执行以下命令
      sudo chmod +x ./install.sh
      sudo chmod +x ./export.sh
      ./install.sh
      . ./export.sh
    
    添加开机启动项:在/etc/profile文件最后添加以下脚本
    . /ypur/path/.esp-idf/export.sh
    
    验证安装
    • 复制examples/get-started/hello_world文件夹到你想存放的位置

    • 进入该文件夹

    • 执行idf.py menuconfig,进入menuconfig操作主界面中
      请添加图片描述

      由于本示例无需任何修改,直接保存退出

    • 接入ESP32,找到ESP32的COM端口,本机为ttyUSB0

    • 执行idf.py build编译项目

    • 执行idf.py -p /dev/ttyUSB0 flash将可执行程序烧录到ESP32上
      也可以执行idf.py -p /dev/ttyUSB0 flash monitor编译、烧录和监控程序执行

WSL2下连接USB 设备

安装 USBIPD-WIN 项目

WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目

  1. 转到usbipd-win 项目的最新发布页
  2. 选择 .msi 文件,该文件将下载安装程序。 (你可能会收到一条警告,要求你确认你信任此下载)
  3. 运行下载的 usbipd-win_x.msi 安装程序文件
    这将安装:
  • 名为 usbipd 的服务(显示名称:USBIP 设备主机)。 可使用 Windows 中的“服务”应用检查此服务的状态。
  • 命令行工具 usbipd。 此工具的位置将添加到 PATH 环境变量。
  • 名为 usbipd 的防火墙规则,用于允许所有本地子网连接到服务。 可修改此防火墙规则以微调访问控制。

在 Linux 中安装 USBIP 工具和硬件数据库

在 Ubuntu 上,运行以下命令

sudo apt install linux-tools-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20

此时,一个服务正在 Windows 上运行以共享 USB 设备,并且在 WSL 中安装了必要的工具来连接到共享设备。

附加 USB 设备

在附加 USB 设备之前,请确保 WSL 命令行已打开。 这将使 WSL 2 轻型 VM 保持活动状态。

  1. 通过以管理员模式打开 PowerShell 并输入以下命令,列出所有连接到 Windows 的 USB 设备:
    usbipd wsl list
    
  2. 选择要附加到 WSL 的设备总线 ID,然后运行此命令。 WSL 会提示你输入密码以运行 sudo 命令。 要附加的 Linux 分发版必须是默认分发版。
    usbipd wsl attach --busid <busid>
    
  3. 打开 Ubuntu(或首选的 WSL 命令行),使用以下命令列出附加的 USB 设备:
    lsusb
    
  4. 在 WSL 中完成设备使用后,可物理断开 USB 设备,或者在管理员模式下从 PowerShell 运行此命令:
    usbipd wsl detach --busid <busid>
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

收款单签字时,报”结算信息表体中本方银行账户、现金账户、票据号 (商业汇票号)不能同时为空,签字操作失败“,能否取消这个校验??

大概整理&#xff0c;如有不当&#xff0c;欢迎留言指出&#xff0c;谢谢&#xff01; 收款单签字时&#xff0c;报”结算信息表体中本方银行账户、现金账户、票据号 (商业汇票号)不能同时为空&#xff0c;签字操作失败“&#xff0c;能否取消这个校验&#xff1f;&#xff1f…

设计模式(六)-----适配器模式(Adapter Pattern)

目录 什么是适配器模式适用场景适配器模式的三种实现方式1. 类的适配器模式2. 对象的适配器模式3. 接口的适配器模式 总结 什么是适配器模式 适配器模式主要用于将一个类的接口转化成客户端希望的目标类格式&#xff0c;使得原本不兼容的类可以在一起工作&#xff0c;将目标类…

2023年7月北京/广州/深圳制造业产品经理NPDP认证招生

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

Windows 10 实现实时文件夹同步的方法

什么是实时同步&#xff1f; 实时文件夹同步是一种确保在满足一定条件时立即更新一个或多个文件夹的过程。与传统的文件同步方法相比&#xff0c;它能够更及时地检测到源文件夹的变化并将这些变化快速复制到目标文件夹。 实时文件夹同步可以采用单向同步或双向同步的模式…

Flutter 状态管理框架 Provider 和 Get 分析

状态管理一直是 Flutter 开发中一个火热的话题。谈到状态管理框架&#xff0c;社区也有诸如有以Get、Provider为代表的多种方案&#xff0c;它们有各自的优缺点。面对这么多的选择&#xff0c;你可能会想&#xff1a;「我需要使用状态管理么&#xff1f;哪种框架更适合我&#…

数据安全之风险评估(三)

网络数据安全风险评估坚持预防为主、主动发现、积极防范&#xff0c;对数据处理者数据安全保护和数据处理活动进行风险评估&#xff0c;旨在掌握数据安全总体状况&#xff0c;发现数据安全隐患&#xff0c;提出数据安全管理和技术防护措施建议&#xff0c;提升数据安全防攻击、…

ElasticSearch简单介绍以及基本概念阐述

文章目录 一、ES是什么二、ES主要功能1、实时数据搜索和分析&#xff1a;2、分布式架构&#xff1a;3、全文搜索&#xff1a;4、实时数据分析&#xff1a;5、多种数据类型支持&#xff1a;6、实时监控和可视化&#xff1a;7、安全性和访问控制&#xff1a;8、多种集成和扩展&am…

java-error-No converter found for return value of type

java-error-No converter found for return value of type 问题描述 &#xff1a; 日志如下 &#xff1a; 14-Jul-2023 15:27:46.747 严重 [http-nio-8080-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke 在路径为[]的上下文中&#xff0c;Servlet[action]的…

掘金量化—Python SDK文档—3.变量约定

目录 Python SDK文档 3.变量约定 3.1 symbol - 代码标识 3.1.1交易所代码 3.1.2交易标的代码 3.1.3symbol 示例 3.1.4期货主力连续合约 3.2mode - 模式选择 3.2.1实时模式 3.2.2回测模式 3.3context - 上下文对象 3.3.1context.symbols - 订阅代码集合 3.3.2context.now - 当…

【PHP面试题46】php-fpm的工作模式是什么,如何进行配置?

文章目录 一、前言二、PHP-FPM的工作模式三、进程数量配置依据四、php-fpm常见的配置参数4.1 pm.max_children4.2 pm.start_servers4.3 pm.min_spare_servers4.4 pm.max_spare_servers4.5 pm.max_requests4.6 request_terminate_timeout4.7 max_input_time4.8 upload_max_files…

UE4 常用控制台命令

ue4执行控制台命令有两种方式&#xff0c;一是在运行时按~呼出控制台输入命令后回车执行&#xff0c;二是调用蓝图函数ExecuteConsoleCommand函数传入参数执行命令&#xff0c;需要注意shipping包无法执行控制台命令 常用命令&#xff1a; Stat FPS 显示帧率 Stat Slate 显示…

激斗云计算:互联网大厂打响新一轮排位战

大模型如同一辆时代列车&#xff0c;所有科技大厂都想上车。 自去年底ChatGPT一炮而红&#xff0c;国内外数十家科技大厂、创业公司、机构相继下场&#xff0c;一时间掀起大模型的热浪。 《中国人工智能大模型地图研究报告》显示&#xff0c;截至今年5月28日&#xff0c;中国…

http连接处理(中)(四)

2. 结合代码分析请求报文解析 上一节我们对http连接的基础知识、服务器接收请求的处理流程进行了介绍&#xff0c;接下来将结合流程图和代码分别对状态机和服务器解析请求报文进行详解。 流程图部分&#xff0c;描述主、从状态机调用关系与状态转移过程。 代码部分&#xff…

内 网 优 化

拓扑 需求 1&#xff09;所有部门中都使用了网关冗余技术&#xff0c;为了增强网关稳定性和冗余性 -配置VRRP -SW5是VLAN10和VLAN20的Master ,是VLAN30的Backup -SW6是VLAN10和VLAN20的Backup,是VLAN30的Master 2&#xff09;交换机之间存在很多冗余链路&#xff0c;必须防止环…

AtcoderABC253场

A - Median?A - Median? 题目大意 给定三个整数a、b和c&#xff0c;判断b是否是这些整数的中位数。 思路分析 判断升序降序两种情况 时间复杂度分析 O(1) 代码 #include<iostream> using namespace std; int main() { int a,b,c; cin>>a>>b>>…

Non-Local Video Denoising by CNN

摘要 Non-local patch based methods were until recently state-of-the-art for image denoising but are now outper formed by CNNs. Y et they are still the state-of-the-art for video denoising, as video redundancy is a key factor to attain high denoising perfor…

JavaWeb——Cookie和Session的工作流程

目录 一、定义 1、Cookie定义 2、Session 二、Cookie和Session的联系和区别 1、联系 2、区别 一、定义 1、Cookie定义 Cookie是浏览器在本地存储数据的一种机制&#xff0c;来自于服务器。 服务器在响应中会带有Set-Cookie字段&#xff0c;通过这个字段就可以把要保存在浏…

及早识别面肌痉挛症状,科学治疗是关键!

随着现代社会的快节奏生活和各种压力的增加&#xff0c;面肌痉挛这一神经肌肉紊乱性疾病的发病率也逐渐上升。面肌痉挛是指由于面肌肌肉群异常收缩而导致的面部肌肉抽搐和不自主运动的症状。如果不及早识别和治疗&#xff0c;将对患者的生活质量产生严重影响。因此&#xff0c;…

C语言,封装自定义函数

1、封装自定义函数&#xff0c;计算数组的最大和&#xff0c;最大差 //第一数组 #include <stdio.h> #include <string.h> int MaxSum(int len,int arr[]); int MaxDel(int len,int arr[]); int main(int argc, const char *argv[]) {int arr[]{5,6,8,51,31,51,88…

2023 7.10~7.16 周报 (RTM研究与正演的Python复现)

0 上周回顾 上周简单阅读了论文《Deep-Learning Full-Waveform Inversion Using Seismic Migration Images》, 但是并没读完…因为这篇论文中提到一个技术吸引了注意力: RTM (Reverse-time migration) 于是计划下周去专门熟悉熟悉RTM的机制, 并且试着用Python复现这个操作. 另…