求助:SD卡读写程序 初始化进入复位循环就出不来了,一直不返回0x01。。。

2019-03-24 15:03发布

//SD卡初始化
char SD_init(void)
{
  int i;
  int time=5;
  unsigned char response1=0xff,response2=0xff;
  P5SEL|=0X0e;   //初始化430UART引脚   P5DIR|=0X0B;   SPI_init();
  CS_1;
   do
  {
    if(!time)
      return (failed);
    time--;
   for(i=0;i<10;i++)
     Sendbyte(0xff);//延时80个CLK
     CS_0;
     Sendcmd(cmd0,0,0x95);
  }
   while(getresponse1()!=0x01);
     while((response1!=0x01)||(response2!=0x00))
    {
      CS_1;
      Sendbyte(0xff);//延时8个CLK
      CS_0;
      Sendcmd(cmd55,0,0xff);
      response1=getresponse1();
      CS_1;
      Sendbyte(0xff);
      CS_0;
      Sendcmd(acmd41,0,0xff);
      response2=getresponse0();
    }
  CS_1;
  Sendbyte(0xff);
  return (SUCCESS);
}       刚开始做430,要做个SPI方式写SD卡的程序,大侠们帮帮忙看看吧。。。这个问题已经纠结好久了 ,看了很多资料也没明白为什么循环不出来 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
5xue
1楼-- · 2019-03-24 21:06

这个要慢慢调,把错误出现的范围缩小,你先在第一个循环里放一条调试语句(就是现象很直观的),注意调试语句放在return的前后是有区别的,因为执行return后,整个函数就结束了。

nothingo
2楼-- · 2019-03-25 00:15
< :TI_MSP430_内容页_SA7 --> 谢谢啦~~~~只有你回复了。。。刚开始做430,老师又一直催结果,就比较着急了,好好耐心调试是正道呀
yl20084784
3楼-- · 2019-03-25 02:45
 精彩回答 2  元偷偷看……
wstt
4楼-- · 2019-03-25 05:13
能不能多贴一点代码呢?
或者多一点注释
感觉这样看不出来啊
nothingo
5楼-- · 2019-03-25 09:28
到现在我还没跳出来呢。。。很搞笑的是,三星的卡是好用的,金士顿的就写不进去了。。。真纠结。。。三星那个卡也是莫名其妙就自己能写进去了
nothingo
6楼-- · 2019-03-25 09:51
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章