硬汉嵌入式论坛

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

[FatFs] FATFS USB读卡器实验

[复制链接]

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
发表于 2016-4-29 09:26:10 | 显示全部楼层 |阅读模式
现有情况:
1)用实现例程(不带FATFS),能实现USB读取SD卡的功能,在电脑上读写SD卡正常。
2)我自已的程序是UCOS2+FATFS,读写SD卡也正常,即SD卡驱动没有问题。
问题点:
1)我把USB的驱动移植到我自己的程序中,发现我只要打开USB请开始死机,所以任务都停止。
2)电脑上能显示U盘,但又击进入里面没有任务东西,容量及文件大小全为0.
据我分析,电脑能显示U盘,说明USB驱动没问题,应该是SD的驱动有问题,很有可能是用FATFS与不用FATFS的时候有什么需要配置的地方。
请知道的朋友指点一下。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106938
QQ
发表于 2016-4-29 12:03:44 | 显示全部楼层
应该是挂载U盘的过程中出问题了,在USBH_Init的过程中加上一个调度锁操作,防止板子上电前U盘就是插上的这种情况,这种情况容易死掉

加上一个调度锁,防止任务切换就好很多了。
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2016-5-3 16:04:19 | 显示全部楼层

回 eric2013 的帖子

eric2013:
应该是挂载U盘的过程中出问题了,在USBH_Init的过程中加上一个调度锁操作,防止板子上电前U盘就是插上的这种情况,这种情况容易死掉

加上一个调度锁,防止任务切换就好很多了。
还是不行:我是用一个按钮的回调函数来初始化USB的。

case GUI_ID_BUTTON6:
        if(NCode==WM_NOTIFICATION_RELEASED)
               {

                           OSSchedLock();
                           usbd_OpenMassStorage();
              OSSchedUnlock();
         }
break;
USB初始化函数是这样的:

void usbd_OpenMassStorage(void)
{    GPIO_ResetBits(GPIOE,GPIO_Pin_4);\\\\USB D+上拉
    USBD_Init(&USB_OTG_dev,
            USB_OTG_HS_CORE_ID,
            &USR_desc,
            &USBD_MSC_cb,
            &USR_cb);
}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 02:31 , Processed in 0.228922 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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