请问怎么使用Cube实现过USB读卡器功能?

2019-07-18 17:26发布



我使用的是STM32F407ZETx芯片,用Cube配置生成一个虚拟的U盘很容易就实现了。
配置完生成MDK工程后,直接编译下载运行,用USB线连接PC后,可以模拟出一个32M的U盘。
不过U盘没有实际的存储空间,也不能进行实际的读写操作,因为块读写函数直接 返回OK,没有进行任何实际操作。

要实现对板上的SD卡进行读写,即实现读卡器功能,就要实现usbd_storage_IF.c文件中下面结构体指定的几个函数,
USBD_StorageTypeDef USBD_Storage_InteRFace_fops_FS =
{
  STORAGE_Init_FS,//初始化存储器
  STORAGE_GetCapacity_FS, // 获取存储器容量
  STORAGE_IsReady_FS, // 检测存储器是否就绪
  STORAGE_IsWriteProtected_FS, // 检测存储去是否写保护
  STORAGE_Read_FS, // 读块
  STORAGE_Write_FS, // 写块
  STORAGE_GetMaxLun_FS, // 获取可用卷数量
  (int8_t *)STORAGE_Inquirydata_FS, // 这是一个数据结构
};
从名称就可指定其用途。

但我把SD卡操作的代码写入相应函数后,没有实现正常的读卡器功能。
不知道怎么回事。
实现代码见续帖。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
吕少大大
1楼-- · 2019-07-18 20:50
 精彩回答 2  元偷偷看……
吕少大大
2楼-- · 2019-07-18 21:03
问题我没有解决,收回你的膝盖

等待大神解决
吕少大大
3楼-- · 2019-07-18 21:14
发布了初步成果。只完成了一个100KB的模拟U盘程序,没有实现SD读卡器功能。
xieweibin
4楼-- · 2019-07-18 23:49
这涉及到FAT表的操作了。
ju978779
5楼-- · 2019-07-19 05:22
SD卡写入时得用相应的中断,请问SD卡中断楼主设了么????
loonor
6楼-- · 2019-07-19 06:21
 精彩回答 2  元偷偷看……

一周热门 更多>