MTK6261之检测是否插了T卡
阅读原文时间:2023年07月15日阅读:1

T卡的更目录可用SRV_FMGR_CARD_DRV

其宏定义如下:

#define SRV_FMGR_CARD_DRV FS_GetDrive(FS_DRIVE_V_REMOVABLE, 1, FS_NO_ALT_DRIVE)

下面使用下面函数都可以实现检测T卡

我先使用FS_GetDevStatus和FS_GetDrive来实现。

static kal_int8 my_get_removeable_driver(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int8 drive;

/\*----------------------------------------------------------------\*/  
/\* Code Body                                                      \*/  
/\*----------------------------------------------------------------\*/  
if (FS\_GetDevStatus((unsigned int)FS\_GetDrive(FS\_DRIVE\_V\_REMOVABLE, , FS\_NO\_ALT\_DRIVE), FS\_MOUNT\_STATE\_ENUM) ==  
        FS\_NO\_ERROR)  
{  
    drive = (kal\_int8) FS\_GetDrive(FS\_DRIVE\_V\_REMOVABLE, , FS\_NO\_ALT\_DRIVE);  
    if ((drive >= 'A') && (drive <= 'Z'))  
    {  
        return drive;  
    }  
}  
return (kal\_int8) ;  

}

当检测到有T卡返回其盘号,反之返回0.

也可以使用现成的函数

srv_fmgr_drv_has_accessible_removable_drv

srv_fmgr_drv_is_accessible(SRV_FMGR_CARD_DRV)

获取系统可用的存储设备盘符

S32 MsgCmd_GetUsableDrive(void)
{
S32 drive = SRV_FMGR_CARD_DRV;

if(!srv\_fmgr\_drv\_is\_accessible(drive))  
{  
    drive = SRV\_FMGR\_PUBLIC\_DRV;  
}

return drive;  

}