OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4511|回复: 3

F407 U盘 实验扫描不出u盘里的文件

[复制链接]

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-5-24
在线时间
25 小时
发表于 2017-9-1 09:55:12 | 显示全部楼层 |阅读模式
1金钱
最近尝试用407读写U盘 没有开发板 用买的407核心板加上自己搭的USB HOST电路,插上U盘可以读到U盘 但用串口助手调用mf_scan_files("2:") 总是返回mf_scan_files("2:")=0XC; 读不到u盘里的文件
U盘里是有一个word文档的 具体情况如下图
请懂的大神赐教
41F$@(P[YVN}Y2FS@XK@639.png
_XQFQGD19LD0`@%UAT}18@E.png

最佳答案

查看完整内容[请看2#楼]

开心 已解决 我自己来解答吧 看了看论坛上其他的帖子,发现问题好像是说U盘没有格式化或者U盘的FATFS和程序的不兼容怎么样的 具体问题原因参考ff.h头文件下的如下一段代码中的 FR_NO_FILESYSTEM, /* (13) There is no valid FAT volume */一行 typedef enum { FR_OK = 0, /* (0) Succeeded */ FR_DISK_ERR, /* (1) A hard error occurred in the low level disk I/O layer */ FR_INT_ERR, /* (2) Assertion ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-5-24
在线时间
25 小时
 楼主| 发表于 2017-9-1 09:55:13 | 显示全部楼层
开心 已解决  我自己来解答吧  看了看论坛上其他的帖子,发现问题好像是说U盘没有格式化或者U盘的FATFS和程序的不兼容怎么样的  
具体问题原因参考ff.h头文件下的如下一段代码中的  FR_NO_FILESYSTEM,                /* (13) There is no valid FAT volume */一行
typedef enum {
        FR_OK = 0,                                /* (0) Succeeded */
        FR_DISK_ERR,                        /* (1) A hard error occurred in the low level disk I/O layer */
        FR_INT_ERR,                                /* (2) Assertion failed */
        FR_NOT_READY,                        /* (3) The physical drive cannot work */
        FR_NO_FILE,                                /* (4) Could not find the file */
        FR_NO_PATH,                                /* (5) Could not find the path */
        FR_INVALID_NAME,                /* (6) The path name format is invalid */
        FR_DENIED,                                /* (7) Access denied due to prohibited access or directory full */
        FR_EXIST,                                /* (8) Access denied due to prohibited access */
        FR_INVALID_OBJECT,                /* (9) The file/directory object is invalid */
        FR_WRITE_PROTECTED,                /* (10) The physical drive is write protected */
        FR_INVALID_DRIVE,                /* (11) The logical drive number is invalid */
        FR_NOT_ENABLED,                        /* (12) The volume has no work area */
        FR_NO_FILESYSTEM,                /* (13) There is no valid FAT volume */
        FR_MKFS_ABORTED,                /* (14) The f_mkfs() aborted due to any parameter error */
        FR_TIMEOUT,                                /* (15) Could not get a grant to access the volume within defined period */
        FR_LOCKED,                                /* (16) The operation is rejected according to the file sharing policy */
        FR_NOT_ENOUGH_CORE,                /* (17) LFN working buffer could not be allocated */
        FR_TOO_MANY_OPEN_FILES,        /* (18) Number of open files > _FS_SHARE */
        FR_INVALID_PARAMETER        /* (19) Given parameter is invalid */
} FRESULT;

我的解决办法是在//用户测试主程序u8 USH_User_App(void)函数中初始化了一次U盘,之后连接就正常了 就不需要初始化了 就注释掉了
贴出代码如下
u8 USH_User_App(void)
{
        u32 total,free;
        u8 res=0;
        printf("设备连接成功!.\r\n");         
//                res=f_mkfs("2:",1,0);
//                if(res==0)
//                {
//                        f_setlabel((const TCHAR *)"2:ALIENTEK");        //设置Flash磁盘的名字为:ALIENTEK
//                        printf("Disk Format Finish\r\n ");        //格式化完成
//                }else printf("Disk Format Error\r\n ");        //格式化失败
//                delay_ms(1000);
        res=exf_getfree("2:",&total,&free);
        if(res==0)
        {  
                printf("FATFS OK!");       
                printf("U Disk Total Size:%d MB",total);         
                printf("U Disk  Free Size:   %d  MB",free);             

        }

        while(HCD_IsDeviceConnected(&USB_OTG_Core))//设备连接成功
        {       
                LED1=!LED1;
                delay_ms(200);
        }
        return res;
}

回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-5-24
在线时间
25 小时
 楼主| 发表于 2017-9-1 10:06:50 | 显示全部楼层
本帖最后由 xiaoxiaowu 于 2017-9-1 10:08 编辑

补充顺便顶一下 调用其他函数的情况都返回0
C:\Users\OPTIMUS\Desktop\B(%5BLC7O@J)CU36EMB%5DNEH}5
B([LC7O@J)CU36EMB]NEH}5.png
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-5-24
在线时间
25 小时
 楼主| 发表于 2017-9-1 14:42:25 | 显示全部楼层
再顶加说明 我看到代码里似乎不支持word文档 现已删除 新建了两个文本文档,仍然读不出来 只不过返回来是mf_scan_files("2:")=0XD;
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-18 08:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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