OpenEdv-开源电子网

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

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

[复制链接]

259

主题

806

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1887
金钱
1887
注册时间
2012-10-28
在线时间
353 小时
发表于 2015-10-20 11:12:10 | 显示全部楼层 |阅读模式
5金钱
请教下,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)  这个也不行

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

最佳答案

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

仿真跟踪啊,看错误处出在哪里. fatfs都有返回值的,根据返回值自己分析问题.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-10-20 11:12:11 | 显示全部楼层
仿真跟踪啊,看错误处出在哪里.
fatfs都有返回值的,根据返回值自己分析问题.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 12:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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