原子哥的代码 初始化金士顿8G Class 4 TF卡不成功

2019-07-20 15:57发布

单片机为STM32F407

程序用的是正点原子的程序,第38个实验的程序(即不带文件系统的程序),初始化512MB的卡就行,但卡的其它参数就不知了,因为这个卡已经放了好久了,上面的很多东西都看不清了,

用同样的程序初始化金士顿8G Class 4 TF卡就不成功,这张卡昨天才从JD上买的

程序调用到  SD_PowerON()函数的

while((!validvoltage)&&(count<SD_MAX_VOLT_TRIAL))
{                                                                                             
     SDIO_CmdInitStructure.SDIO_Argument = 0x00;//发送CMD55,短响应
      SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_APP_CMD;          //CMD55
      SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_Short;
      SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;
      SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
      SDIO_SendCommand(&SDIO_CmdInitStructure);                        //发送CMD55,短响应         
        errorstatus=CmdResp1Error(SD_CMD_APP_CMD);                  //等待R1响应  
                        
         if(errorstatus!=SD_OK)return errorstatus;           //响应错误   <<------  将会在这里出现一个错误  ,为SD_CMD_CRC_FAIL,并退出 SD_PowerON函数

      //acmd41,命令参数由支持的电压范围及HCS位组成,HCS位置一来区分卡是SDSc还是sdhc
      SDIO_CmdInitStructure.SDIO_Argument = SD_VOLTAGE_WINDOW_SD | SDType;        //发送ACMD41,短响应        
      SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_SD_APP_OP_COND;
      SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_Short;  //r3
      SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;
      SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
      SDIO_SendCommand(&SDIO_CmdInitStructure);

        errorstatus=CmdResp3Error();                                         //等待R3响应           
         if(errorstatus!=SD_OK)return errorstatus;           //响应错误
        response=SDIO->RESP1;;                                                           //得到响应
        validvoltage=(((response>>31)==1)?1:0);                        //判断SD卡上电是否完成
        count++;  << ----  退出时,这个值大概为9左右
}


有没有人知道是什么原因?
原子哥,知不知道什么原因?

刚注册的号,没分,不好意思。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
若水12345
1楼-- · 2019-07-20 20:04
 精彩回答 2  元偷偷看……
若水12345
2楼-- · 2019-07-20 23:38
八度空间
3楼-- · 2019-07-21 04:12
 精彩回答 2  元偷偷看……
若水12345
4楼-- · 2019-07-21 08:43
八度空间 发表于 2017-3-21 22:24
仿真一下看下都返回些什么东西了

返回 SD_CMD_CRC_FAIL
八度空间
5楼-- · 2019-07-21 13:14
若水12345 发表于 2017-3-21 23:21
返回 SD_CMD_CRC_FAIL

初始化的时候频率不能过高
若水12345
6楼-- · 2019-07-21 17:19
八度空间 发表于 2017-3-23 16:47
初始化的时候频率不能过高

频率为400K

一周热门 更多>