SD卡的SDIO初始化时,原子的程序默认是设置成 不使能旁路模式,SDIO_CK的的时钟为SDIOCLK/(2+CLKDIV),我用的是SDHC卡,程序中CLKDIV设置为0,SDIOCLK固定为48Mhz,即,SDIO_CK=24Mhz
我改成使能旁路模式(并把程序中相应设置CLKDIV,即设置SDIO->CLKCR的程序注释),SDIO_CK的时钟就是直接由SDIOCLK提供,理论就是SDIO_CK=48Mhz
我读图片时检测发现,旁路模式使能和不使能区别不大,是有提速,但是理论不应该是快一倍的吗?涉及到的设置还有哪些吗?
我改的部分就是以下语句而已,
SD_Error SD_PowerON(void)函数中:
SDIO_InitStructure.SDIO_ClockBypass = SDIO_ClockBypass_Enable;
SD_Error SD_Init(void)函数中(注释):
// if(SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V1_1||SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V2_0)
// {
// clkdiv=SDIO_TRANSFER_CLK_DIV+2; //V1.1/V2.0卡,设置最高48/4=12Mhz
// }else clkdiv=SDIO_TRANSFER_CLK_DIV; //SDHC等其他卡,设置最高48/2=24Mhz
// SDIO_Clock_Set(clkdiv); //设置时钟频率,SDIO时钟公式:SDIO_CK时钟=SDIOCLK/[clkdiv+2];其中,SDIOCLK固定为48Mhz
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>