MTK6261之检测是否插了T卡

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, 1, FS_NO_ALT_DRIVE), FS_MOUNT_STATE_ENUM) ==
            FS_NO_ERROR)
    {
        drive = (kal_int8) FS_GetDrive(FS_DRIVE_V_REMOVABLE, 1, FS_NO_ALT_DRIVE);
        if ((drive >= 'A') && (drive <= 'Z'))
        {
            return drive;
        }
    }
    return (kal_int8) 0;
}

当检测到有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;
}
原文地址:https://www.cnblogs.com/libra13179/p/10881468.html