硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1661|回复: 7
收起左侧

[SD/SDIO] SD 卡初始化时卡死在FindSCR函数

[复制链接]

10

主题

90

回帖

120

积分

初级会员

积分
120
发表于 2022-5-2 21:26:59 | 显示全部楼层 |阅读模式
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)//接收FIFO数据可用
        {
            *(tempscr+index)=SDIO->FIFO;    //读取FIFO内容
            index++;
            if(index>=2)break;
        }
    }
如果不加if(index>=2)break;这句话,发现死在while循环里面。但是官方例程,包括安富莱的例程,都木有if(index>=2)break;单步调试,确实读取FIFO只读取了2次,然后就是无限制卡死在这里了。在网上查问题的时候,发现有些人加了if(index>=2)break;这句话,问题来, 是官方例程出问题了么?

回复

使用道具 举报

10

主题

90

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2022-5-2 23:30:37 | 显示全部楼层
在看了一波资料,SCR的信息是64位的,确实只需要读取2次就可以了。。。但是,现在又出现问题了,容量什么其他信息都可以正确读取,SCR读取的值全部都是0。。。不知道是不是连线出错了!!!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2022-5-3 08:22:08 | 显示全部楼层
这个很早之前就升级了。
image.png
回复

使用道具 举报

10

主题

90

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2022-5-3 15:16:15 | 显示全部楼层
eric2013 发表于 2022-5-3 08:22
这个很早之前就升级了。

这里好像加了超时检测了。。。昨天晚上搞了一个晚上,终于把SCR读取OK了,确实数据线连错了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2022-5-3 17:06:47 | 显示全部楼层
mrjiu 发表于 2022-5-3 15:16
这里好像加了超时检测了。。。昨天晚上搞了一个晚上,终于把SCR读取OK了,确实数据线连错了。

嗯,找到问题就好
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2023-7-30 13:17:32 | 显示全部楼层
  网上也有很多解决方法,但都不灵光。



  while(!__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXOVERR | SDMMC_FLAG_DCRCFAIL | SDMMC_FLAG_DTIMEOUT | SDMMC_FLAG_DBCKEND))

  {

    if(__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXDAVL))

    {//卡死的时候,进不了这个条件判断的,一直到超时。

      *(tempscr + index) = SDMMC_ReadFIFO(hsd->Instance);

      index++;

    }



    if((HAL_GetTick() - tickstart) >=  SDMMC_DATATIMEOUT)

    {

      return HAL_SD_ERROR_TIMEOUT;

    }

  }
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-11-14 14:28:11 | 显示全部楼层
ccschen 发表于 2023-7-30 13:17
网上也有很多解决方法,但都不灵光。

你的解决了吗。我现在也是卡死在这里。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2023-11-14 14:54:27 | 显示全部楼层
fandelxin 发表于 2023-11-14 14:28
你的解决了吗。我现在也是卡死在这里。

如果使用的SDMMC1,注意主RAM空间仅支持AXI SRAM。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 20:14 , Processed in 0.267470 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表