OpenEdv-开源电子网

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

SD卡 新手疑问

[复制链接]

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-9-26
在线时间
21 小时
发表于 2016-11-5 18:48:48 | 显示全部楼层 |阅读模式
SD卡实验中 发送命令函数中
u8 SD_SendCmd(u8 cmd, u32 arg, u8 crc)
{
    u8 r1;       
        u8 Retry=0;
        SD_DisSelect();//è¡ÏûéÏ′ÎÆ¬Ñ¡
        if(SD_Select())return 0XFF;//Ƭѡê§D§
        //·¢Ëí
    SD_SPI_ReadWriteByte(cmd | 0x40);//·Ö±eD′èëÃüáî 01
    SD_SPI_ReadWriteByte(arg >> 24);
    SD_SPI_ReadWriteByte(arg >> 16);
    SD_SPI_ReadWriteByte(arg >> 8);
    SD_SPI_ReadWriteByte(arg);          
    SD_SPI_ReadWriteByte(crc);
        if(cmd==CMD12)SD_SPI_ReadWriteByte(0xff);//Skip a stuff byte when stop reading
    //μè′yÏìó|£¬»ò3¬ê±íË3ö
        Retry=0X1F;
        do
        {
                r1=SD_SPI_ReadWriteByte(0xFF);
        }while((r1&0X80) && Retry--);         
        //·μ»Ø×′ì¬Öμ
    return r1;
}
红色字体的含义是什么?为什么要并一个        Retry次数呢?而且在其他函数中这个次数也不一样?哪位大神能帮小弟解释下。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-9-26
在线时间
21 小时
 楼主| 发表于 2016-11-5 19:01:04 | 显示全部楼层
再看了下视频 知道其中的含义了
回复 支持 反对

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-11-5 22:38:26 | 显示全部楼层
因为这里有个while循环啊,是存在死循环的风险的。试想如果SD卡出了故障什么的,循环条件永远成立,那么整个系统就卡死在这里出不来了,所以加一个retry,如果卡死了还能退出来
回复 支持 反对

使用道具 举报

7

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-10-11
在线时间
43 小时
发表于 2016-11-5 23:22:08 | 显示全部楼层
楼上正解。。所以,,他不需要准确的值,大概多少数据就可以
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-11-5 23:35:24 | 显示全部楼层
一直等待某个状态或者标记出现,等待一定时间没出现当做错误处理,不要在意这些细节
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-9-26
在线时间
21 小时
 楼主| 发表于 2016-11-23 23:46:07 | 显示全部楼层
哦哦 谢谢各位 已经明白了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 10:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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