
前言 一些应用中,涉及到对存储设备的数据访问,例如 uSD 卡、U 盘。具备 USB OTG 控制器的 STM32,可以实现对 U 盘访问的支持。本文介绍 STM32 对于 U 盘访问的硬件/软件实现。介绍如何利用 STM32CubeMX,一步一步实现 STM32 访问U 盘。仅需要简单的几个步骤, 实现 U 盘访问的应用开发。 一 MSC 类简介 MSC (Mass Storage Class) 是 USB 规范提供的一种 USB 大容量存储设备类,允许一个 USB 接口的设备与 USB 主机相连接,以便在两者之间传输文件。USB MSC 传输协议分为 CBI (Control / Bulk / Interrupt) 和 BOT (Bulk-only Transfer)。BOT协议在不影响功能的情况下省去了对 Interrupt 端点的需求,被存储设备广泛支持。STM32 提供的 USB 库支持 USB MSCBOT 协议。 MSC 设备包含很多种,例如 U 盘、读卡器、移动硬盘等。STM32 通过内含的 USB OTG 控制器(支持主机模式)和USB 主机库,实现对 MSC 类的支持,进而实现对 U 盘访问的支持。本文中不涉及到 USB MSC (Mass Storage Class) 的详细介绍 ,更多 MSC 类介绍,请参考《USB 进阶培训_Part1_USB 类的介绍》。 二 MSC 在 STM32 上的实现 2.1 硬件支持 不同的 STM32 系列,对 USB 的支持情况如下。对于 STM32F105/107、STM32F2、STM32F4、STM32F7 和 STM32H7 系列,部分型号支持 USB OTG,能够实现 USB 主机和从机。U 盘作为 USB MSC 设备,需要 STM32 作为 USBMSC 主机,实现两者间的访问。(注:系列中不是所有型号都支持 OTG,以具体型号手册为准。) ![]() ![]() STM32 OTG 硬件电路图如下所示。CN3 为 USB 连接器。对于 STM32 OTG,配置为仅主机模式时,不需使用 OTG_ID,可将其引脚用于其他功能。并且在不使用 SRP (Session Request Protocol) 和 HNP (Host Negotiation Protocol) 时,可不连接 VBUS 至 PA9。电路简化如下图。 ![]() 更多关于 STM32 USB 硬件设计,请参考《AN4879 USB hardware and PCB guidelines using STM32 MCUs》。 2.2 软件支持 STM32 拥有丰富的软件资源,推荐如下两个软件包: STM32Cube 软件包(包含 USB/OTG 库,支持 MSC 协议) STM32CubeMX 辅助开发工具(辅助开发自定义板上应用) 完整版请查看:附件 |
USB access based on STM32CubeMX .pdf
下载1.55 MB, 下载次数: 2
拷打cubemx【003】——找不到的芯片包
新版STM32Cube for Visual Studio Code开发体验
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
经验分享常被误解的开、关总中断
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件软件IIC一网打尽)
【STM32C0测评】Nucleo-C092开发板USART串口测试
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯