OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2056|回复: 1

SDIO->STA 响应超时

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-5-31
在线时间
4 小时
发表于 2019-4-25 09:38:09 | 显示全部楼层 |阅读模式
17金钱
最近在SD卡读写实验中有遇到个问题,主体表现就是会有概率的出现SDIO->STA 响应超时问题,具体如下,会一直在这个while中死循环,请教一下大家                        case SD_CARD://SD卡
                        res=SD_ReadDisk(buff,sector,count);         
                        while(res)//读出错
                        {
                                SD_Init();        //重新初始化SD卡
                                res=SD_ReadDisk(buff,sector,count);       
                        }
                        break;


返回值不为零在SD_ReadBlock()中发送SD_CMD_SET_BLOCKLEN命令后出现的,
               if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0))
              {
                  power=convert_from_bytes_to_power_of_two(blksize);            

                  SDIO_CmdInitStructure.SDIO_Argument =  blksize;
                  SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_SET_BLOCKLEN;
                  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);//发送CMD16+设置数据长度为blksize,短响应

               
                 errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN);        //等待R1响应  
               
                 if(errorstatus!=SD_OK)return errorstatus;           //响应错误               
             }

最佳答案

查看完整内容[请看2#楼]

原因已找到,是因为我这的SD有加一个电子开关,在从stop模式唤醒出来时忘记初始化电子开关的引脚,这样导致的SD卡不正常
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-5-31
在线时间
4 小时
 楼主| 发表于 2019-4-25 09:38:10 | 显示全部楼层
原因已找到,是因为我这的SD有加一个电子开关,在从stop模式唤醒出来时忘记初始化电子开关的引脚,这样导致的SD卡不正常
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 11:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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