硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3467|回复: 7
收起左侧

STM32的USB-Device和FatFS使用SD卡的冲突如何解决

[复制链接]

7

主题

4

回帖

25

积分

新手上路

积分
25
发表于 2019-5-9 10:09:56 | 显示全部楼层 |阅读模式
程序中的USB-Device和FatFS两个库都要用到SD卡这个硬件。问题:当USB连接到PC时,PC上操作SD卡,程序自身也通过FatFS操作SD卡,二者会起冲突,有可能会破坏SD卡上的文件系统。
有试过:1. 使用USBD_Start和USBD_Stop两个API来启动和停止USB,当FatFS操作SD卡的时候,但是测试发现反复的启停会导致USB-Device不能使用,即不能被PC识别了;
             2. FatFS和USB-Device操作SD卡的底层带上互斥保护,但是测试发现效果不理想,用久了USB-Device还是不能被PC识别;

请问有哪位朋友遇到过这个问题吗,或者有什么解决问题的思路,谢谢


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2019-5-9 11:03:52 | 显示全部楼层
暂时无解。

回复

使用道具 举报

25

主题

101

回帖

181

积分

初级会员

积分
181
发表于 2019-5-9 13:31:50 | 显示全部楼层
创建两个任务,USB运行时挂起FATFS,可以试试呢
回复

使用道具 举报

9

主题

156

回帖

183

积分

初级会员

积分
183
发表于 2023-1-4 14:24:27 | 显示全部楼层
之前我也遇到这样的问题
回复

使用道具 举报

12

主题

53

回帖

89

积分

初级会员

面霸

积分
89
发表于 2024-7-11 18:42:42 来自手机 | 显示全部楼层
eric2013 发表于 2019-5-9 11:03
暂时无解。

硬汉哥,这个操作sd卡的问题有解决办法了不,或者说应用上有没有替代方案
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2024-7-12 09:06:57 | 显示全部楼层
1350280419 发表于 2024-7-11 18:42
硬汉哥,这个操作sd卡的问题有解决办法了不,或者说应用上有没有替代方案

后来的替代方案是使用USB MTP文件传输方式,这个可以同时用。
回复

使用道具 举报

0

主题

39

回帖

39

积分

新手上路

积分
39
发表于 2024-7-12 10:01:33 | 显示全部楼层
很简单啊,你做个USB的5V检测即可,检测到USB的插入,在启动USB协议栈的初始化,把SD的控制权给USB,当5V移除后,在将控制权在文件系统,SO EASY
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2024-7-13 08:45:47 | 显示全部楼层
a13421364618 发表于 2024-7-12 10:01
很简单啊,你做个USB的5V检测即可,检测到USB的插入,在启动USB协议栈的初始化,把SD的控制权给USB,当5V移 ...

这个不行,他们是想实现挂载U盘的时候,单片机可以继续FatFS操作SD卡。

如果电脑挂载SD卡期间,会不断轮询SD卡,如果此期间FatFS操作SD卡,会导致轮询出问题,从而电脑识别出错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-9 21:39 , Processed in 0.428451 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表