完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的是STM32F407ZETx芯片,用Cube配置生成一个虚拟的U盘很容易就实现了。 配置完生成MDK工程后,直接编译下载运行,用USB线连接PC后,可以模拟出一个32M的U盘。 不过U盘没有实际的存储空间,也不能进行实际的读写操作,因为块读写函数直接 返回OK,没有进行任何实际操作。 要实现对板上的SD卡进行读写,即实现读卡器功能,就要实现u***d_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个回答
|
|
int8_t STORAGE_IsReady_FS (uint8_t lun)
{ /* USER CODE BEGIN 4 */ static int8_t prev_status = 0; int8_t ret = -1; if(prev_status < 0) { MX_SDIO_SD_Init(); prev_status = 0; } if(HAL_SD_GetStatus(&hsd) == SD_TRANSFER_OK) { ret = 0; } return ret; // return (USBD_OK); /* USER CODE END 4 */ } int8_t STORAGE_IsWriteProtected_FS (uint8_t lun) { /* USER CODE BEGIN 5 */ return (USBD_OK); /* USER CODE END 5 */ } |
|
|
|
|
|
|
|
发布了初步成果。只完成了一个100KB的模拟U盘程序,没有实现SD读卡器功能。
|
|
|
|
这涉及到FAT表的操作了。
|
|
|
|
SD卡写入时得用相应的中断,请问SD卡中断楼主设了么????
|
|
|
|
建议看原子407板子的例子,有这个读卡器例子!
|
|
|
|
看看原子的429的HAL库的例子,有SD卡的例子。
|
|
|
|
路过看看
|
|
|
|
32G TF MSC 实验 也遇到了这种问题 不知道 什么原因
|
|
|
|
|
|
NO......
|
|
|
|
(uint64_t)blk_addr*STORAGE_BLK_SIZ,
读写函数的 blk_addr 参数就直接给blk_addr 试一下,不乘STORAGE_BLK_SIZ |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1047 浏览 0 评论
2375 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2173 浏览 3 评论
4805 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2318 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 01:58 , Processed in 0.713708 second(s), Total 63, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号