OpenEdv-开源电子网

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

sd卡问题

[复制链接]

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
发表于 2012-9-9 11:16:14 | 显示全部楼层 |阅读模式
1:红色部分为什么返回0xff?没有找到相关的技术手册说明,求指正(试过其他的值不对)
2:紫色的部分加额外的8个时钟有什么用处?
3:在写入一个数据包后,返回的状态字R1为什么是0x05?0x05不是表示存在非法指令?


u8 SD_WaitReady(void)
{
 u32 t=0;
 do
 {
  if(SD_SPI_ReadWriteByte(0Xff)==0Xff)        
  {
   printf("wait ready is ok!!");
   return 0;//OK
  }
  t++;     
 }while(t<0XFFFFFF);//等待
 return 1;
}

void SD_DisSelect(void)
{
 SD_CS=1;
 SD_SPI_ReadWriteByte(0xff);//提供额外的8个时钟
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2011-8-15
在线时间
3 小时
发表于 2012-9-9 13:04:28 | 显示全部楼层
在本论坛搜索“0xff”!!
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
 楼主| 发表于 2012-9-9 23:26:22 | 显示全部楼层
回复【2楼】bravejt:
---------------------------------
我明白spi为什么要写入0xff,不明白为什么返回值是0xff,q求指教~~
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
 楼主| 发表于 2012-9-9 23:28:10 | 显示全部楼层
回复【2楼】bravejt:
---------------------------------
我明白spi为什么要写入0xff,不明白为什么返回值是0xff,q求指教~~
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-9-10 00:45:15 | 显示全部楼层
论坛搜索了么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
 楼主| 发表于 2012-9-10 22:07:49 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
搜了,这个贴是和我一样的问题 http://www.openedv.com/posts/list/5846.htm
但感觉原子回答的是SD_SPI_ReadWriteByte(0Xff)中的0xff,没有回答返回值为啥是0xff,还是没有正解啊
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
 楼主| 发表于 2012-9-10 23:20:20 | 显示全部楼层
睡前一顶~~求指教啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-9-10 23:25:31 | 显示全部楼层
返回值就要去看SD卡SPI通信协议 了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
 楼主| 发表于 2012-9-11 16:17:29 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
除了第一个问题其他都搞定了,再问个问题:
下面这段代码中的while((r1&0X80) && Retry--) ;r1&0x80不应该一直为0么,最后会应为超时而退出循环。难道返回值r1不是不完全手持册中说的那个R1么?
先谢过原子了~~
u8 SD_SendCmd(u8 cmd, u32 arg, u8 crc)
{
    u8 r1;
u8 Retry=0; 
SD_DisSelect();//取消上次片选
if(SD_Select())return 0XFF;//片选失效 
//发送
    SD_SPI_ReadWriteByte(cmd | 0x40);//分别写入命令
    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
    //等待响应,或超时退出
Retry=0X1F;
do
{
r1=SD_SPI_ReadWriteByte(0xFF);
}while((r1&0X80) && Retry--); //返回状态值
    return r1;
}     
回复 支持 反对

使用道具 举报

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2012-9-10
在线时间
31 小时
发表于 2012-11-17 21:14:23 | 显示全部楼层
回复【9楼】Alexinx:
---------------------------------
请问你现在知道 if(SD_SPI_ReadWriteByte(0Xff)==0Xff)   的后面那个0xff的意思了吗???为什么会返回这个呢????
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
 楼主| 发表于 2012-11-20 16:43:26 | 显示全部楼层
回复【10楼】liujie14565:
---------------------------------
哎,还是不知道
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1816
金钱
1816
注册时间
2011-10-9
在线时间
230 小时
发表于 2012-11-20 17:09:53 | 显示全部楼层
楼主研究这个东西干什么

反正正常情况下  你给sd卡发一个 0xff命令   他就给你回一个0xff   没收到就不正常。 就这样

回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1816
金钱
1816
注册时间
2011-10-9
在线时间
230 小时
发表于 2012-11-20 17:10:43 | 显示全部楼层
不正常 有2个可能  1个是sd卡不正常  然后也可能是 sd卡 没准备好 
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
 楼主| 发表于 2012-11-20 17:41:59 | 显示全部楼层
回复【12楼】simms01:
---------------------------------
先谢谢了

不是研究了,主要是不明白为什么,想弄清楚,以后自己写也有个依据
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 22:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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