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; }