SD卡初始化问题u8 SD_WaitReady(void)

2019-08-12 17:27发布

使用原子的新版SD卡程序移植到stm32f103vc的板子上,在SD卡初始化中,等待卡准备好的函数中,利用串口查看,始终得到0X00,不能得到0xff,换了3种卡都不能得到0xff,移植原来挑卡那版程序初始化没有问题,请大虾帮我分析分析造成的原因吧,不胜感激。
//等待卡准备好
//返回值:0,准备好了;其他,错误代码
u8 SD_WaitReady(void)
{  
 u32 t=0;
 do
 {
  if(SD_SPI_ReadWriteByte(0XFF)==0XFF)return 0;//OK 此处SD_SPI_ReadWriteByte(0XFF)返回的值一直是0x00”
  t++;     
 }while(t<0XFFFFFF);//等待
 return 1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
Pony279
1楼-- · 2019-08-15 16:54
 回复【25楼】 ZHUZHU :
---------------------------------
好久没做单片机啦,找其他人问问,我忘得差不多了
ZHUZHU
2楼-- · 2019-08-15 17:21
回复【26楼】Pony279:
---------------------------------
恩恩~还是谢谢了
QZDZ
3楼-- · 2019-08-15 20:14
我遇到的情况与这个有点类似,也是SD_WaitReady占用时间太多。
我做数据采集,以20ms间隔往卡里写一扇区数据,从逻辑分析仪抓的波形看,有数据没有来得及写入而丢失。

后来找到,正常扇区写入只有两三个毫秒,但在写入有的扇区的时候,
停在SD_WaitReady轮询的时间占用有的三四十毫秒,有的一两百毫秒。

导致后面数据来不及写入而丢失。
wodezpyzz
4楼-- · 2019-08-15 23:25
SD_SPI_ReadWriteByte(0XFF)==0XFF;为什么发送0xFF如果接收到0xFF就认为卡准备好了?如果没有卡会不会也是接收到0xFF?
毛小毛
5楼-- · 2019-08-16 05:11
 精彩回答 2  元偷偷看……
毛小毛
6楼-- · 2019-08-16 11:03
回复【30楼】毛小毛:
---------------------------------
在MISO引脚加上拉电阻后OK

一周热门 更多>