【ESP32S2】使用ESP32S2开发板制作U盘,支持无线访问

2023-11-18

前言

使用官方例程"usb_msc_wireless_disk",将ESP32S2开发板制作成一个支持wifi无线访问的U盘设备。


一、开发环境

SDK https://github.com/espressif/esp-idf.git
方案 https://github.com/espressif/esp-iot-solution
开发板 安信可ESP-12K开发板NodeMCU-32-S2
OS Windows 10

二、硬件介绍

	- Board:ESP32-S3-USB-OTG, or any ESP32-Sx board 
	- MCU:ESP32-S2, ESP32-S3
	- Flash:4MB NOR Flash
	- Hardware Connection: 
	- GPIO19 to D-				// 我用的是安信可ESP32S2-12K开发板,可根据自己的开发板确认管脚
	- GPIO20 to D+
	- SDCard IO varies from boards, you can defined your own in code.	// 如MSC要映射到外部SDCARD时需要

三、下载esp-idf

	cd esp										// 是我的根目录
	git clone -b master --recursive https://github.com/espressif/esp-idf.git esp-idf  // 下载master分支
	cd esp-idf
	git pull
	git checkout d5f58ab13551cd8				// check到指定节点
	git submodule update --init --recursive		// 要确保各个子模块更新成功

修改esp-idf/components/driver/spi_master.c:

diff --git a/components/driver/spi_master.c b/components/driver/spi_master.c
	index 15cfceb9ac..c076ed631c 100644
	--- a/components/driver/spi_master.c
	+++ b/components/driver/spi_master.c
	@@ -563,6 +563,7 @@ static void SPI_MASTER_ISR_ATTR spi_new_trans(spi_device_t *dev, spi_trans_priv_

		 //Call pre-transmission callback, if any
		 if (dev->cfg.pre_cb) dev->cfg.pre_cb(trans);
	+    ets_delay_us(10);		// 加上这一行
		 //Kick off transfer
		 spi_hal_user_start(hal);
	 }

四、下载esp-iot-solution

	cd esp
	git clone -b usb/add_usb_solutions --recursive https://github.com/espressif/esp-iot-solution
	cd esp-iot-solution
	xcopy /e /i examples\usb\device\usb_msc_wireless_disk usb_msc_wireless_disk		
	// 拷贝一份出来,不污染原文件。

五、配置idf

1、执行下载脚本

	cd esp
	esp-idf\install.bat	

如速度慢,添加一个新的环境变量(类型为用户或系统都可以,名称为 IDF_GITHUB_ASSETS,值为dl.espressif.com/github_assets);

如果之前安装过其它版本的idf环境,可能会报错,可以把.espressif\python_env删掉。.espressif一般位于用户根目录,即打开一个命令行窗口所在的位置。

2、设置环境变量

	cd esp
	esp-idf\export.bat

3、声明外部组件

	cd esp
	set IOT_SOLUTION_PATH=D:\xxx\code\esp\esp-iot-solution	// 我们要使用esp-iot-solution中的组件

六、构建例程

	cd esp-iot-solution\usb_msc_wireless_disk
	idf.py set-target esp32s2	// 如果遇到报错“找不到xxx文件”、“xxx is not a directory”,很可能是子模块没有下载成功,可以进入对应目录,手动checkout 出来(git checkout commitid) 
	idf.py menuconfig			// 这步可选,如使用默认配置,则可跳过。
	idf.py build				// 如果之前有build失败过,手动删除build目录。

七、烧写Flash

	idf.py -p com5 flash		// com序号根据实际情况

八、使用方法

1)将开发板的USB_D+、USB_D-、VCC_5V、GND分别连接USB插头的绿、白、红、黑线;
2)将USB插头插入PC,能识别到一个1.5M左右的U盘;
2)PC连接热点“ESP-Wireless-Disk”,无密码;
3)连接成功后,PC浏览器打开“192.168.4.1”,即可访问U盘;

九、感谢

使用ESP32S2原生USB自制U盘,可支持无线访问
MIT 女极客 ESP32-S2 TinyUSB 直播教学,All about the ESP32-S2 by Espressif Systems
https://github.com/espressif/esp-iot-solution/tree/usb/add_usb_solutions/examples/usb/device/usb_msc_wireless_disk/README.md

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【ESP32S2】使用ESP32S2开发板制作U盘,支持无线访问 的相关文章

  • Mac 下 Arduino 开发环境搭建

    文章目录 Mac 下 Arduino 开发环境搭建 驱动 Arduino 安装 Arduino IDE 使用 Arduino IDE 准备跑路 VS Code 安装 VS Code 安装 Arduino 扩展 安装 C C 扩展 开始开发
  • EMC测试的那些项目,你都知道么?

    转载 EMC电磁兼容 2022 03 27 08 30 EMC检测 电磁兼容性检测 的全称是Electro Magnetic Compatibility 其定义为 设备和系统在其电磁环境中能正常工作且不对环境中任何事物构成不能承受的电磁骚扰
  • 智慧农业物联网系统 智慧农业解决方案

    智慧农业是智慧经济发展在农牧业上的运用反映 伴随着5G无线通信技术 互联网大数据信息资源管理技术性等现代化技术性普及化 物联网的实际运用标准逐渐完善 传统农业便熟练掌握物联网 摇身一变变成智能农业 智慧农业应用农业地区的每个传感器连接点检测
  • 这个 17 岁的黑客天才,破解了第一代 iPhone!

    关注 星标公众号 直达精彩内容 时间来到2007年 第一代的ipone问世惊艳了世人 重新定义了智能手机 但第一代的iPhone也有让人恼火的地方 当时的iPhone和AT T 当时美国最大的移动运营商 签了五年的独家运营协议 使得网络只局
  • 高校圆桌派第三期话题征集强势来袭~

    高校圆桌派 话题风暴等你来 即日起参与 高校圆桌派 活动 就有机会获得CSDN高校圆桌大礼包和CSDN周边礼品免费包邮送到家 高校圆桌派第二期话题征集结果公示 1 刚毕业的程序员有必要执着于进入大厂吗 小厂和大厂怎么选择 2 新能源汽车行业
  • 什么是iiot全称

    iiot的全称是Industrial Internet of Things 翻译成中文便是工业物联网 它是指工业生产中各种设备 不论是工厂里的机器设备或者汽车飞机上的发动机 在这些设备上装置传感器 连接到无线网络终端以收集和共享数据 随着传
  • 公司章程变更需要经过哪些程序

    公司章程变更需要经过以下程序 1 提议修改公司章程 一般由董事会提出修改建议 董事会是公司经营的决策机构 对公司经营情况以及章程的执行和变化情况较为了解 能够对公司章程的修改提出具有积极意义的建议 2 将修改公司章程的提议通知股东 公司章程
  • 车联网企业排行榜

    1 为紧跟车联网行业发展动态 聚焦优质市场主体 中国价值公司100排行榜之车联网企业排行榜从经营分析 发展能力以及社会责任三个维度对30家车联网重点企业进行综合评分 2 车载信息服务领域 市场主体多样 角色多元 以百度 腾讯 博泰 四维图新
  • 药明康德成都研发中心投入运营;中国白酒行业净利润将迎来七年来首次下滑

    今日看点 药明康德成都研发中心正式投入运营 该研发中心将成为药明康德上海研发总部以外 又一个覆盖化学及生物学的新药发现整体研发平台 将为客户提供从小分子药物设计 合成 分析 体内体外生物学 肿瘤免疫学等全方位 一体化的新药研发服务 该研发中
  • MQTT-java使用说明

    MQTT java使用说明 本文的资料下载 链接 https pan baidu com s 1OCfsQ NqcehKy86kYkA wg pwd 1234 提取码 1234 MQTT基本介绍 MQTT是一个客户端服务端架构的发布 订阅模
  • 使用Arduino开发ESP32(22):蓝牙作为客户端使用

    文章目录 目的 基础准备 搜索蓝牙设备 搜索设备 信息查询 连接与交互 总结 目的 ESP32的蓝牙除了作为服务器 从设备 使用还可以作为客户端 主机 使用 这篇文章将对相关内容做个简单说明 基础准备 这篇文章中测试需要先准备一个蓝牙服务器
  • BLE连接、配对和绑定

    参考 一篇文章带你解读蓝牙配对绑定 参考 BLE安全之SM剖析 1 参考 BLE安全之SM剖析 2 参考 BLE安全之SM剖析 3 参考 https blog csdn net chengbaojin article details 103
  • 蓝牙ble tips3-MAC地址

    和计算机网络IP地址类似 BLE也会有属于自己的一个地址 BLE设备地址 蓝牙地址 也称作 Bluetooth MAC Media Access Control 地址 是一个48位的唯一硬件标识符 用于在蓝牙设备之间建立连接和通信 它由全球
  • 英特尔 Edison MRAA 模块不工作

    我最近下载了 Intel XDK IOT 版本并使用了 LED 引脚 13 闪烁示例 然后我将程序上传到爱迪生上 但它出现了一些错误 其中之一是找不到 MRAA 模块 附带的示例代码是 main js var mraa new requir
  • 如何在 Windows Core IoT 应用程序中显示当前时间的时钟?

    我正在尝试创建一个在 Raspberry Pi 2 上无头运行的 Windows 10 IoT 应用程序 一切都设置正确 我可以使用 Raspberry Pi 作为远程机器进行调试 从 Visual Studio 进行调试 现在我想在应用程
  • 如何实现MQTT网关连接各类工业物联设备,实现数据传输与控制

    MQTT是一种轻量级的发布 订阅消息传输协议 专门为低带宽 高延迟或不稳定的网络环境设计 它支持离线消息存储 使客户端在未连接到服务器时也能接收到消息 MQTT网关是一种采用MQTT协议的网关设备 可以连接不同类型的工业物联设备 实现设备之
  • AWS IOT - 建立设备所有权和防止未经授权的访问的最佳方式是什么

    在AWS IOT中 我没有在网上看到任何解释来描述确保发布带有敏感数据的主题的设备只能由设备所有者访问的最佳方法 例如 Bob 登录他的智能手机应用程序并使用 Cognito 进行身份验证 身份池身份验证角色已有一项策略 允许访问 AWS
  • Azure IoT 中心证书

    我正在尝试使用 Mqtt 在 Azure IoT 中心发布一些数据 我已使用 SAS 令牌成功发布了一些数据 但我的客户想要一个 x509 自生成和自签名证书 Azure 支持这一点 但没有提供太多相关信息 https learn micr
  • Raspberry 3 上的 GSM/GPRS 模块与 Android Things 原生集成

    我想知道是否有任何方法可以使 GPRS GSM 模块 SIM800L 作为 android 中的 默认 连接 允许浏览互联网并使用 Android 库发出请求 似乎不是 因为如this https stackoverflow com a 4
  • CoAP 和 DTLS 集成

    我实现了 CoAP libcoap 和 DTLS tinyDTLS 的实现 如何将 CoAP libcoap 与 DTLS tinyDTLS 集成 我将不胜感激任何建议 libcoap 现在完全支持这一点 当您使用其子模块构建它时 git

随机推荐

  • vue首屏优化

    先分析加载慢的原因 再做优化 1 首先安装webpack的可视化资源分析工具 命令行执行 npm i webpack bundle analyzer D 2 然后在webpack的dev开发模式配置中 引入插件 代码如下 const Bun
  • 微信小程序-input标签无法输入数据问题

    使用微信开发者工具学习时 input标签点击之后鼠标无法跳转 也无法输入数据 解决方案 直接单击键盘的 Tab键即可跳入输入框 鼠标未在输入框内 按一下Tab键也可跳入
  • Vue脚手架相关笔记(ref属性、props配置、mixin混入、scoped样式)

    关于不同版本的Vue 1 vue js 与vue runtime xxx js的区别 1 vue js是完整版的Wue 包含 核心功能 模板解析器 2 vue runtime xxx js是运行版的Vue 只包含 核心功能 没有模板解析器
  • Sysrv-hello挖矿病毒

    麻蛋我的服务器也中了这个挖矿病毒 先看一下网上能找到的文章吧 https developer aliyun com article 780758 讲了一大堆原理 你倒是给我解决办法啊 1 先杀了进程 sysrv network01 2 修改
  • H5打开新窗口与页面跳转的几种方法

    1 在本窗体打开一个新的页面 window location href URL 2 在一个新的窗口打开一个新的页面 window open URL 3 本窗口的页面被替换为一个新的页面URL 替换后不可以回退到上个页面 location r
  • 理光打印机出现sc542-01怎样解决?

    问题图 步骤一图文 补充 理光维修模式指令 107 03以下机型 143 通用 806182 03以上机型 注方法 1 清除键 黄色 点一次 107 停止键 红色键 按住3秒以上 2 依次按重置 RESET 806182 按住C不动3秒 就
  • CentOS7.5最小化安装之后的配置

    我是最小化安装的 安装了之后很多基本使用配置没有 接下来要做一些配置 如网络之类的 使系统可用 1 使命令分页显示 1页显示不不下 又不能上翻页 xxx more 2 查看系统安装了哪些软件包 rpm qa 3 配置网络 最小化安装之后 i
  • 听我一句劝,别去外包,干了3个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入湖南某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 一种关于单片机定时器中断和数码管冲突问题的解决方案

    问题发现 我们会发现 同时存在定时器中断和数码管操作时 有时会导致数码管显示异常 原因探究 在定时器中断函数中不要操作P2和P0 因为定时器 T 和主板 M 的时钟频率不一样 有可能导致M刚操作完P2 T又去操作P0 导致正确的P2和P0没
  • Windows从命令行创建文本文件的两种方式

    第一种方式 copy con 文件名 然后可以输入文件内容 完成后打Ctrl Z退出 输入的内容被保存为一个文件 第二种 如下 echo gt 文件名 创建一个空的文件 当然你可以创建任何后缀名的文本类文件 创建一个SQL文件也是没问题的
  • 教你更优雅的写法处理null检查

    回顾以前对null的处理方式 public class OptionalTest public static void main String args test01 小黑 test01 null public static void te
  • View.VISIBLE、INVISIBLE、GONE的区别

    View VISIBLE INVISIBLE GONE的区别 android中UI应用的开发中经常会使用view setVisibility 来设置控件的可见性 其中该函数有3个可选值 他们有着不同的含义 View VISIBLE gt 可
  • Qt事件和事件循环

    在处理QT循环事件的时候遇到了问题 查了半天资料都没弄明白问题出在哪 后来找大牛同事问了一下 同事就给我写了QCoreApplication processEvent 这个函数 好啦 终于搞定了 这里小记一下 以免以后遇到 于是乎这里认真仔
  • Your account has been blocked问题解决

    更新代码时报错 如下 branches to build service 1 get branch service to dir service only update code Your account has been blocked
  • 2020规划调整,以自研引擎和osg/osgearth源码分析为主

    随着公司转入webgl 我要求调整到osg osgearth工具 因为是c 方面的 特别是osg osgearth源码可以深入下 以前光把视频教程看过 说白了就是简单二次应用 并没有深入下去 所以 趁此机会多读读osg osgearth源码
  • 计算机系统(一)——冯诺依曼体系

    现代计算机的基本结构是由冯诺依曼提出的 冯诺依曼的体系结构体系如下图所示 计算机由运算器 控制器 存储器 也就是内存 输入设备 输出设备五大部件组成 其中运算器和控制器组成cpu 在冯诺依曼体系中 数据先从输入设备输入到内存中 运算时数据从
  • 解决使用SpringBoot上传文件大小受限问题

    今天在做项目学习的过程中 需要用到文件上传 启动项目正常 访问上传post请求突然报出了一个异常 特此记录一下 1 控制台异常 org springframework web multipart MaxUploadSizeExceededE
  • 一起赚美元①

    译者 一只椰子 知识星球链接 https t zsxq com iAiIyfm 本文的主人公叫迈克 他在采访里面提到 自动化工具这一法宝已经轻松帮他实现每个月 12 5万美元的利润 对他而言 年入100万美元 根本不是梦 1 主人公简介 我
  • 看完这篇,成为Grafana高手!

    背景 QQ直播前端团队接入腾讯云前端性能监控 RUM 后 对目前的监控能力以及上报数据进行了梳理 并着手进行了前端性能监控的专项建设 其中监控数据大盘建设是不可或缺的一环 可视化的监控大盘可以清晰明了的观察到各项目运行情况 宏观上能快速进行
  • 【ESP32S2】使用ESP32S2开发板制作U盘,支持无线访问

    文章目录 前言 一 开发环境 二 硬件介绍 三 下载esp idf 四 下载esp iot solution 五 配置idf 1 执行下载脚本 2 设置环境变量 3 声明外部组件 六 构建例程 七 烧写Flash 八 使用方法 九 感谢 前