news 2026/7/2 3:26:44

STM32F407 + USB3300 实现大容量 U 盘读写

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32F407 + USB3300 实现大容量 U 盘读写

一、硬件接线

STM32F407USB3300说明
OTG_HS_ULPI_CKCK60 MHz 时钟
OTG_HS_ULPI_D0…D7D0…D78 位数据
OTG_HS_ULPI_DIRDIR方向信号
OTG_HS_ULPI_NXTNXT下一字节
OTG_HS_ULPI_STPSTP停止信号
VBUS5 V主机供电(P-MOS 开关)
GNDGND共地

注意USB3300 必须 3.3 V 供电60 MHz 晶振 + 18 pF 起振电容


二、CubeMX 配置

  1. RCC:HSE = 25 MHz,PLL = 168 MHzUSB OTG HS = 48 MHz
  2. USB_OTG_HS:Mode =Host_OnlyExternal PHY = ULPI
  3. USB_HOST:Class =MSCDMA = EnableFIFO = 1.25 KB
  4. FatFS:Interface =USB DiskCODE_PAGE = 936 (GBK)
  5. DMAUSB_OTG_HS_RX/TX FIFO DMA突发长度 = 4

三、Keil 工程

1. 磁盘 I/O 移植
/* usbd_diskio.c 已由 CubeMX 生成,直接调用 USBH_MSC_Read/Write */#include"usbh_msc.h"externUSBH_HandleTypeDef hUsbHostFS;DSTATUSUSBH_disk_initialize(BYTE pdrv){return(USBH_MSC_UnitIsReady(&hUsbHostFS,pdrv))?RES_OK:RES_NOTRDY;}DRESULTUSBH_disk_read(BYTE pdrv,BYTE*buff,DWORD sector,UINT count){return(USBH_MSC_Read(&hUsbHostFS,pdrv,sector,buff,count)==USBH_OK)?RES_OK:RES_ERROR;}DRESULTUSBH_disk_write(BYTE pdrv,constBYTE*buff,DWORD sector,UINT count){return(USBH_MSC_Write(&hUsbHostFS,pdrv,sector,(BYTE*)buff,count)==USBH_OK)?RES_OK:RES_ERROR;}
2. 主函数(大容量读写测试
#include"fatfs.h"#include"usbh_msc.h"#defineBLOCK_SIZE512#defineBLOCK_COUNT2000// 1 MB 测试uint8_tbuf_tx[BLOCK_SIZE];uint8_tbuf_rx[BLOCK_SIZE];voidUSB_Test_MultiBlock(void){FRESULT res;UINT bw,br;DWORD block_addr=1000;// 避开前 1 MB// 填充测试数据for(uint16_ti=0;i<BLOCK_SIZE;i++)buf_tx[i]=i&0xFF;// 多扇区写res=f_write(&file,buf_tx,BLOCK_SIZE*BLOCK_COUNT,&bw);if(res!=FR_OK)printf("Write ERR %d\n",res);// 多扇区读res=f_read(&file,buf_rx,BLOCK_SIZE*BLOCK_COUNT,&br);if(res!=FR_OK)printf("Read ERR %d\n",res);// 校验if(memcmp(buf_tx,buf_rx,BLOCK_SIZE*BLOCK_COUNT)==0)printf("Multi-block OK, %u KB\\n",BLOCK_COUNT/2);elseprintf("Data mismatch\\n");}

参考代码 stm32f407+usb3300-实现大容量u盘读写 www.youwenfan.com/contentcsp/51706.html

四、运行结果

U 盘容量:32 GB 读速度:14.4 MB/s(Class-10) 写速度:10.6 MB/s(Class-10) 多扇区 2000×512 B:0.8 s(1 MB)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 13:43:00

AI+AR实验:如何快速搭建Z-Image-Turbo环境开发增强现实艺术应用

AIAR实验&#xff1a;如何快速搭建Z-Image-Turbo环境开发增强现实艺术应用 如果你是一名AR开发者&#xff0c;想要结合Z-Image-Turbo创造实时AI生成内容的增强现实体验&#xff0c;那么一个已经配置好必要库和驱动的开发环境将大大提升你的原型开发效率。本文将详细介绍如何快速…

作者头像 李华
网站建设 2026/6/26 18:13:59

这个购物商城项目的源码挺有意思的,完全单机运行不联网,用SQLite就能搞定所有数据存储。咱们直接扒开代码看门道,先说说用户系统的实现

Android安卓成品项目 购物商城系统源码apk 安卓源码&#xff0c;成品项目&#xff0c;单机不联网项目&#xff0c;包含项目报告 登录注册&#xff0c;展示和修改个人信息&#xff0c;全部商家列表&#xff0c;讨论功能&#xff0c;添加购物车&#xff0c;联系&#xff0c;付款…

作者头像 李华
网站建设 2026/6/29 0:39:56

Z-Image-Turbo模型压力测试:快速构建你的性能评估环境

Z-Image-Turbo模型压力测试&#xff1a;快速构建你的性能评估环境 作为一名系统架构师&#xff0c;我最近需要评估Z-Image-Turbo模型在高并发场景下的表现&#xff0c;但发现市面上缺乏现成的压力测试工具。经过一番摸索&#xff0c;我总结出一套快速搭建测试环境的方法&#x…

作者头像 李华
网站建设 2026/7/1 0:41:31

自动化测试模型与驱动+项目问题思考,一篇带你打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、线性测试 早期…

作者头像 李华
网站建设 2026/7/1 7:34:14

Z-Image-Turbo API开发入门:快速搭建你的第一个图像生成服务

Z-Image-Turbo API开发入门&#xff1a;快速搭建你的第一个图像生成服务 如果你是一位全栈开发者&#xff0c;想要将Z-Image-Turbo集成到自己的web应用中&#xff0c;但不知道如何快速搭建后端API服务&#xff0c;那么这篇教程就是为你准备的。Z-Image-Turbo是阿里开源的一款高…

作者头像 李华
网站建设 2026/6/26 12:57:35

云渲染时能否关机或断网?

在影视动画制作、建筑可视化设计等领域&#xff0c;云渲染凭借强大的云端算力&#xff0c;成为解放本地设备、提升工作效率的核心工具。但很多用户在使用时都会有一个核心疑问&#xff1a;提交云渲染任务后&#xff0c;本地电脑能不能关机或断网&#xff1f;其实答案并非简单的…

作者头像 李华