[求助] SDIO方式连接TF卡初始化失败

CCss131   2019-10-7 10:19 楼主

代码运行到此处进入到FindSCR函数中在while和if中死循环了,跳不出判断条件,请问一下有大佬会解决吗?试了好多办法都不行

/*!< Get SCR Register */
  errorstatus = FindSCR(RCA, scr);


 while (!(SDIO->STA & (SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DBCKEND| SDIO_FLAG_STBITERR)))
   {           
      if (SDIO_GetFlagStatus(SDIO_FLAG_RXDAVL) != RESET)  
    {      
              *(tempscr + index) = SDIO_ReadData();  
               index++;    

   
              if(index > 1 ) 
                break;
    }
    
  }

回复评论 (8)

这段是读卡信息,应该是在最前面的初始化部分,这种错误也不能排除是硬件故障,比如缺少上拉电阻或电压不合要求.

点赞  2019-10-9 09:24

版主你好,硬件加了上拉,程序是可以识别有没有插入TF卡的,但是到了初始化卡那里就循环判断了

进入这个判断,这时SDIO_FLAG的值是0x00200000,根据介绍是 SDIO_FLAG_RXDAVL:   Data available in receive FIFO 这个值也是0x00200000,所以在判断不等于RESET值时,不符合就一直循环在这两个函数中。所以应该怎么解决?

FlagStatus SDIO_GetFlagStatus(uint32_t SDIO_FLAG)

  FlagStatus bitstatus = RESET;
  
  /* Check the parameters */
  assert_param(IS_SDIO_FLAG(SDIO_FLAG));

  if ((SDIO->STA & SDIO_FLAG) != (uint32_t)RESET)
  {
    bitstatus = SET;
  }
  else
  {
    bitstatus = RESET;
  }
  return bitstatus;
}
QQ图片20191009142245.png

点赞  2019-10-9 14:23

微信截图_20191009155137.png QQ图片20191009155049.png QQ图片20191009154415.png

版主你好,补充一下在运行到开启4bits模式中的FindSCR函数中就判断不了了,是什么原因?SCR寄存器读到是0x0800067E

本帖最后由 CCss131 于 2019-10-9 16:55 编辑
点赞  2019-10-9 15:49

 while (!(SDIO->STA & (SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DBCKEND| SDIO_FLAG_STBITERR)))
   {           
      if (SDIO_GetFlagStatus(SDIO_FLAG_RXDAVL) != RESET)  
    {      
              *(tempscr + index) = SDIO_ReadData();  
               index++;    

   
              if(index > 1 ) 
                break;
    }

注释了这段上面这段代码,SD卡初始化成功,到了SD_EraseTest()的擦除测试里面的

uint32_t SD_DMAEndOfTransferStatus(void)
{
  return (uint32_t)DMA_GetFlagStatus(DMA2_FLAG_TC4);   //Channel4 transfer complete flag. 

}

在DMA_GetFlagStatus中bitstatus就一直重置SD_WaitReadOperation 1570674458(1).png 1570694727(1).jpg
  

本帖最后由 CCss131 于 2019-10-10 16:06 编辑
  • image.png
点赞  2019-10-10 10:30

这个涉及好多硬件软件细节,我建议你换套硬件试试,sd卡的固件程序应该是没问题的,注释掉跳过去也不是办法.

点赞  2019-10-10 16:29

版主你好,怎么样获取SCR、SSR、CSR的内容?

点赞  2019-10-17 14:35

库函数里有

点赞  2019-10-21 13:06

版主请问一下,搭建好文件系统,需要从SD卡中读取RGB565的bmp格式的TXT文件里面的数据怎么编写代码可以存到数组里面啊?长度有点长

点赞  2019-11-5 14:55
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复