请教下,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 /* 0
isable 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!
");
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) 这个也不行
到底是什么情况造成的啊 ??????????????????????????????
fatfs都有返回值的,根据返回值自己分析问题.
一周热门 更多>