硬汉嵌入式论坛

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

USB f_opendir卡死

[复制链接]

24

主题

24

回帖

96

积分

初级会员

积分
96
发表于 2020-5-15 15:03:47 | 显示全部楼层 |阅读模式
大家好,用v6板子的时候遇到个问题,用的v6-106c_FatFS文件系统例程(U盘),可以挂载U盘但是到了f_opendir就卡死了,请问下是什么原因呢?我用的是读卡器插得SD卡。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2020-5-15 16:19:42 | 显示全部楼层
卡在了什么地方。
回复

使用道具 举报

24

主题

24

回帖

96

积分

初级会员

积分
96
 楼主| 发表于 2020-5-15 17:26:08 | 显示全部楼层
eric2013 发表于 2020-5-15 16:19
卡在了什么地方。

卡在函数disk_read();的while (status == USBH_MSC_BUSY );


                                if (HCD_IsDeviceConnected(&USB_OTG_Core))
                                {
                                        do
                                        {
                                                status = USBH_MSC_Read10(&USB_OTG_Core, buff,sector,512 * count);
                                                USBH_MSC_HandleBOTXfer(&USB_OTG_Core ,&USB_Host);

                                                if (!HCD_IsDeviceConnected(&USB_OTG_Core))
                                                {
                                                        break;
                                                }
                                        }
                                        while (status == USBH_MSC_BUSY );
                                }
回复

使用道具 举报

24

主题

24

回帖

96

积分

初级会员

积分
96
 楼主| 发表于 2020-5-15 17:38:41 | 显示全部楼层
eric2013 发表于 2020-5-15 16:19
卡在了什么地方。

如果用出厂程序加上v6-106c_FatFS文件系统例程(U盘)的U盘读取部分,不会卡死在f_opendir,会返回0x03(FR_NOT_READY)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2020-5-15 19:04:02 | 显示全部楼层
YZ明 发表于 2020-5-15 17:38
如果用出厂程序加上v6-106c_FatFS文件系统例程(U盘)的U盘读取部分,不会卡死在f_opendir,会返回0x03( ...

兼容性问题,使用我这个案例测试,如果也无法正常识别,的确是无法正常识别了,这个是USB标准库最新版。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=17658&extra=page%3D1



QQ截图20200515190508.png
回复

使用道具 举报

24

主题

24

回帖

96

积分

初级会员

积分
96
 楼主| 发表于 2020-5-16 10:49:25 | 显示全部楼层
eric2013 发表于 2020-5-15 19:04
兼容性问题,使用我这个案例测试,如果也无法正常识别,的确是无法正常识别了,这个是USB标准库最新版。
...

我又试了下v5的开发板,也是同样的结果。您那边是否可以帮忙看看是不是也有这样的现象
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2020-5-16 10:52:04 | 显示全部楼层
YZ明 发表于 2020-5-16 10:49
我又试了下v5的开发板,也是同样的结果。您那边是否可以帮忙看看是不是也有这样的现象

我这里杠杠的。

STM32移植USB库2.2.0版本----USB Host之外挂U盘移植步骤及其注意事项,识别率很高,
http://www.armbbs.cn/forum.php?m ... id=19754&fromuid=58
(出处: 硬汉嵌入式论坛)


手头4个U盘全部成功正常读写:


回复

使用道具 举报

24

主题

24

回帖

96

积分

初级会员

积分
96
 楼主| 发表于 2020-5-16 16:01:41 | 显示全部楼层
eric2013 发表于 2020-5-16 10:52
我这里杠杠的。

STM32移植USB库2.2.0版本----USB Host之外挂U盘移植步骤及其注意事项,识别率很高,

我的问题找到了,是因为为屏蔽了,直接运行了ViewRootDir();        /* 显示SD卡根目录下的文件名 */
只要按正常的窗口发送就可以了

//if (comGetChar(COM1, &cmd))        /* 从串口读入一个字符(非阻塞方式) */
{
                        printf("\r\n");
                        cmd = '1';
                        switch (cmd)
                        {
                                case '1':
                                        printf("【1 - ViewRootDir】\r\n");
                                        ViewRootDir();                /* 显示SD卡根目录下的文件名 */
                                        break;

                                case '2':
                                        printf("【2 - CreateNewFile】\r\n");
                                        CreateNewFile();                /* 创建一个新文件,写入一个字符串 */
                                        break;

                                case '3':
                                        printf("【3 - ReadFileData】\r\n");
                                        ReadFileData();                /* 读取根目录下armfly.txt的内容 */
                                        break;

                                case '4':
                                        printf("【4 - CreateDir】\r\n");
                                        CreateDir();                /* 创建目录 */
                                        break;

                                case '5':
                                        printf("【5 - DeleteDirFile】\r\n");
                                        DeleteDirFile();        /* 删除目录和文件 */
                                        break;

                                case '6':
                                        printf("【6 - TestSpeed】\r\n");
                                        WriteFileTest();        /* 速度测试 */
                                        break;

                                default:
                                        DispMenu();
                                        break;
                        }
}



顺带问个网口的问题,用的v5开发板 V5-1004_RL-TCPnet实验_调试方法(裸机)例程,只有一个网口(DM9161 PHY电路)可以出口输出一些IP地址什么的,换一个就不可以了,是因为没有配置还是什么呢。DM9000 网卡电路和DM9161 PHY电路区别是什么呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2020-5-16 16:07:40 | 显示全部楼层
YZ明 发表于 2020-5-16 16:01
我的问题找到了,是因为为屏蔽了,直接运行了ViewRootDir();        /* 显示SD卡根目录下的文件名 */
只要按正 ...

你跑的这个例子就是针对DM9161/9162的。没有DM9000。
两个的区别看此教程学习:

http://www.armbbs.cn/forum.php?mod=viewthread&tid=26034&extra=page%3D1
回复

使用道具 举报

24

主题

24

回帖

96

积分

初级会员

积分
96
 楼主| 发表于 2020-5-16 16:19:35 | 显示全部楼层
eric2013 发表于 2020-5-16 16:07
你跑的这个例子就是针对DM9161/9162的。没有DM9000。
两个的区别看此教程学习:

那有DM9000 网口的配套例程么
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2020-5-16 16:27:23 | 显示全部楼层
YZ明 发表于 2020-5-16 16:19
那有DM9000 网口的配套例程么

出厂程序支持,下载溜溜即可。

你的问题就聊这么多吧,结帖。

回复

使用道具 举报

24

主题

24

回帖

96

积分

初级会员

积分
96
 楼主| 发表于 2020-5-16 17:17:41 | 显示全部楼层
eric2013 发表于 2020-5-16 16:27
出厂程序支持,下载溜溜即可。

你的问题就聊这么多吧,结帖。

好的,十分感谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 09:00 , Processed in 0.284340 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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