我使用的是
STM32F407ZETx
芯片,用Cube配置生成一个虚拟的U盘很容易就实现了。
配置完生成MDK工程后,直接编译下载运行,用
USB线连接PC后,可以模拟出一个32M的U盘。
不过U盘没有实际的
存储空间,也不能进行实际的读写操作,因为块读写函数直接 返回OK,没有进行任何实际操作。
要实现对板上的SD卡进行读写,即实现读卡器功能,就要实现usbd_storage_
IF.c文件中下面结构体指定的几个函数,
USBD_StorageTypeDef USBD_Storage_Inte
RFace_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卡操作的代码写入相应函数后,没有实现正常的读卡器功能。
不知道怎么回事。
实现代码见续帖。
读写函数的 blk_addr 参数就直接给blk_addr 试一下,不乘STORAGE_BLK_SIZ
一周热门 更多>