当前位置: 首页 > news >正文

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)
http://www.jsqmd.com/news/216629/

相关文章:

  • 零基础入门AI绘画:用预装Z-Image-Turbo的云端镜像快速创作
  • 科研利器:快速部署AI图像生成模型进行学术实验
  • 紫金桥组态软件与国产操作系统—天翼云完成兼容认证
  • 无人值守污水处理控制系统。 西门子200PLC和显控触摸屏编写的智能污水处理控制系统,有上位机...
  • 科哥揭秘:Z-Image-Turbo预置镜像中的隐藏彩蛋与特殊功能
  • 数字员工与熊猫智汇结合AI销冠系统推动企业智能转型与降本增效
  • 基于几何非线性梁理论和数值增量迭代法的MATLAB求解程序
  • MATLAB代码:基于多时间尺度滚动优化的多能源微网双层调度模型 关键词:多能源微网 多时间尺...
  • 智慧园区:引领时代发展的创新引擎
  • 13个值得收藏的开源项目推荐,学习编程的你一定不能错过的宝藏资源!
  • Python+Matplotlib:大数据可视化的高效解决方案
  • AI艺术风格迁移:基于Z-Image-Turbo的快速实验方法
  • 导师不会告诉你的9款AI论文神器,AIGC率低至13%!
  • 基于Vue的迅读网上书城22f4d(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
  • 8步出图不是梦:手把手教你用云端Z-Image-Turbo实现高效创作
  • 云渲染时能否关机或断网?
  • 实战案例分享】利用三菱PLC和组态王实现智能化鸡舍温湿度控制系统,提升养鸡场效益
  • 多智能体系统如何评估公司的可持续发展能力
  • 基于Vue的学生作业管理系统3u509(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
  • 胜利大逃亡_抄底逃顶看得清的指标公式
  • 全网最细,银行信用卡项目测试点+面试题(详细2)
  • 24小时AI绘画挑战:用Z-Image-Turbo云端方案完成从零到作品集
  • Z-Image-Turbo性能调优指南:快速搭建你的高效推理环境
  • Z-Image-Turbo模型压力测试:快速构建你的性能评估环境
  • 让入职背调零死角:为企业筑牢人才入职第一关
  • 懒人必备:一键部署阿里通义Z-Image-Turbo WebUI的终极方案
  • 无障碍设计:视障者友好的AI图像描述生成系统搭建
  • 非常实用的主升买点指标 /预警 通达信 贴图绝无未来函数
  • 如果你把今天的深圳【智能硬件峰会】当成一次技术分享,那完全低估了阿里云的野心
  • 毕业设计救星:快速搭建支持商用的AI图像生成环境