最近整理了几种T卡座的资料软件修改方法各不相同具体如下第一种低电平检测这种是最常规的一种T卡软件里面默认的也是这种io_def.h中定义为#defineSD_CLK_DIR_IN(){GPIOADIR|BIT(6);GPIOAPU|BIT(6);}#defineSD_CLK_IN_DIS_PU10K(){GPIOADIR|BIT(6);GPIOAPU~BIT(6);}#defineSD_CLK_DIR_OUT(){GPIOAPU~BIT(6);GPIOADIR~BIT(6);}#defineSD_MUX_DETECT_INIT(){GPIOADE|BIT(6);GPIOAPU|BIT(6);GPIOADIR|BIT(6);}#defineSD_MUX_IS_ONLINE()((GPIOABIT(6))0)原理图如下CD脚为检测脚未插入T卡的时候CD为悬空插入T卡之后CD脚对地短路所以软件检测到低电平是识别为T卡插入。实物图如下第二种高电平检测io_def.h中定义为#defineSD_CLK_DIR_IN(){GPIOADIR|BIT(6);GPIOAPD|BIT(6);}#defineSD_CLK_IN_DIS_PU10K(){GPIOADIR|BIT(6);GPIOAPU~BIT(6);}#defineSD_CLK_DIR_OUT(){GPIOAPD~BIT(6);GPIOADIR~BIT(6);}#defineSD_MUX_DETECT_INIT(){GPIOADE|BIT(6);GPIOAPD|BIT(6);GPIOADIR|BIT(6);}#defineSD_MUX_IS_ONLINE()((GPIOABIT(6))6)原理图如下SWITCH脚为检测脚未插入TF卡的时候SWITCH为悬空插入T卡之后SWITCH脚对 CLK 短路所以软件检测到高电平是识别为T卡插入。实物图如下第三种不带检测脚的卡座这种卡座有点特殊因为硬件上不带检测脚这个时候就需要使用软件来检测了config.h中修改#defineSD_SOFT_DETECT_EN1//是否使用软件检测 (SD发命令检测)#defineSDCLK_MUX_DETECT_SD0//是否复用SDCLK检测SD卡#defineSD0_MAPPINGSD0MAP_G3//对应硬件即可#defineSD1_MAPPINGSD0MAP_G4//对应硬件即可配置工具中选择软件检测即可实物图如下市面上所有的T卡检测的原理不外乎这三种。