硬汉嵌入式论坛

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

[有问必答] 请教下,fatfs v0.11 挂载3个磁盘,只能识别0,1、2不能够识别?

[复制链接]

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2015-10-20 11:11:27 | 显示全部楼层 |阅读模式
请教下,fatfs v0.11 挂载3个磁盘,只能识别0,    1、2不能够识别?

三个磁盘号分配,

#define FS_SD                0
#define FS_NAND        1
#define FS_USB                2
#define FS_SPI                3
#define FS_NOR                4


FATFS fs_sd, fs_nand, fs_usb;

相关fatfs 的 定义
#define        _USE_LFN        2                /* 0 to 3 【由0 修改 1】*/
#define        _MAX_LFN        255

#define _STRF_ENCODE        3
#define _VOLUMES        3                /* 【由0 修改 3, 支持3个盘符】 */
#define    _FS_LOCK    3        /* 0isable or >=1:Enable 【由0 修改 3, 支持同时打开3个文件】*/
在调用这个 if(f_mount(&fs_usb, "2:/", 0) != FR_OK) 挂载系统文件程序时,没有进入到
下面的磁盘初始化函数里面来

DSTATUS disk_initialize (
        BYTE pdrv                                /* Physical drive nmuber to identify the drive */
)
{
        DSTATUS stat = STA_NOINIT;

        switch (pdrv)
        {

                case FS_SD :
                        if (SD_Init() == SD_OK)
                        {
                                stat = RES_OK;
                        }
                        else
                        {
                                stat = STA_NODISK;
                        }
                        break;               

                case FS_NAND :
                        if (NAND_Init() == NAND_OK)
                        {
                                stat = RES_OK;
                        }
                        else
                        {
                                /* 如果初始化失败,请执行低级格式化 */
                                //                                printf("NAND_Init() Error!  \r\n");
                                stat = RES_ERROR;
                        }
                        break;



                case FS_USB :                /* STM32 USB Host 口外接U盘 */
                        if(HCD_IsDeviceConnected(&USB_OTG_Core))
                        {
                                stat &= ~STA_NOINIT;
                        }
                        break;

                        case FS_SPI :                /* SPI Flash */

                        break;

                case FS_NOR :                /* NOR Flash */
               
                        break;        
                default : break;
        }
        return stat;
}


  if(f_mount(&fs_sd, "0:/", 0) != FR_OK)  完全可以进入到上面的那个初始化函数里面进行sd卡的初始化

   if(f_mount(&fs_nand, "1:/", 0) != FR_OK)  这个也不行

到底是什么情况造成的啊 ??????????????????????????????
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2015-10-21 00:38:43 | 显示全部楼层
hpdell:

确实是这个问题,最近新的发现是 挂载 文件系统就出问题了,貌似挂载文件系统只识别 磁盘0,

而磁盘1, 2 都不会识别,不知道是什么情况啊 ??

看下你的硬件设计是不是使用的USB HS引脚,这两个引脚我以前测试的确有这个bug
1.png
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
 楼主| 发表于 2015-10-23 16:15:00 | 显示全部楼层
已经搞定了啊,多谢多谢了啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2015-10-24 00:29:01 | 显示全部楼层

回 hpdell 的帖子

hpdell:已经搞定了啊,多谢多谢了啊 (2015-10-23 16:15) 
[s:142]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 05:24 , Processed in 0.045875 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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