OpenEdv-开源电子网

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

SD卡的问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2011-7-19
在线时间
0 小时
发表于 2011-7-19 09:51:50 | 显示全部楼层 |阅读模式
 

请教一下SD卡的问题,第一个问题是:以下函数中的r1 = SD_ReadWriteByte(0xFF);是什么意思?为什么要发送0xff,且if(retry==0xfffe)  中的0xff又是意思?

u8 SD_WaitReady(void)      {
    u8 r1;
    u16 retry;
    retry = 0;
    do
    {
        r1 = SD_ReadWriteByte(0xFF);  
        if(retry==0xfffe)                      {
            return 1;
        }
    }while(r1!=0xFF);

    return 0;
}
我在不完全手册上看到的是 r1=SPIx_ReadWriteByte(0xFF)&0X1F,为什么要取低5位呢?

第二个问题如下:是不是每次写命令都要在写命令之前和写完命令之后添加8个时钟周期,也就是添加SD_ReadWriteByte(0xff)函数,其中的while((r1 = SD_ReadWriteByte(0xFF))==0xFF)该怎么理解呢?在线急等答复,再次谢谢!


u8 SD_SendCommand(u8 cmd, u32 arg, u8 crc)
{
    unsigned char r1;
    unsigned char Retry = 0;

    
    SD_ReadWriteByte(0xff);
    //片选端置低,选中SD卡
    SD_CS_ENABLE();                     //片选置低

    //发送
    SD_ReadWriteByte(cmd | 0x40);      
    SD_ReadWriteByte(arg >> 24);    
    SD_ReadWriteByte(arg >> 16);
    SD_ReadWriteByte(arg >> 8);
    SD_ReadWriteByte(arg);
    SD_ReadWriteByte(crc);              //写CRC效验值
   
    //等待响应,或超时退出
    while((r1 = SD_ReadWriteByte(0xFF))==0xFF)
    {
        Retry++;
        if(Retry > 200)
        {
            break;
        }
    }
   

    //关闭片选
    SD_CS_DISABLE();
    //在总线上额外增加8个时钟,让SD卡完成剩下的工作
    SD_ReadWriteByte(0xFF);

    //返回状态值
    return r1;
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-7-19 12:30:21 | 显示全部楼层
回复【楼主位】wangsheng2000:
---------------------------------
第一个问题,很多人问过.论坛应该有记录.
就是让MOSI一直保持高电平.
而if(retry==0xfffe) 是一个延时而已.
为什么要取低5位,这个要看SD卡指令表.
第二个问题.
看代码就知道了,是的.
其中while是等待SD卡返回正确响应.注释有说.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2011-7-18
在线时间
0 小时
发表于 2011-7-19 20:37:09 | 显示全部楼层
同学,请问你用的什么牌子和型号的sd卡呢?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 17:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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