请教关于SD卡的读写

2019-07-16 03:36发布

tica, Arial, sans-serif">//实现功能:从SD卡指定地址读取数据,一次最多512字节(参考SD卡读时序)
//================================================================================================
unsigned char SdReadBlock(unsigned char *Block, unsigned long address,unsigned int len)
{
        unsigned int count;


        SD_CS=0;       //使能SD卡


        SdCommand(17,address,0xff);//send command 17读扇区命令
      
        if(SdResponse()==0x00)//command was a success - now send data
            {
                      while(SdRead()!=0xfe); //等待数据的起始令牌号
                    for(count=0;count<len;count++)
                        *Block++=SdRead(); //读512个数据
        
                    SD_CS=1;
                    return 0;
            }
            return 1;
}
//*************************************************************************
//向指定地址写入512个字节
//************************************************************************


unsigned char SdWriteBlock(unsigned char *Block,unsigned long address,unsigned int len)
{
        unsigned int count;


        SD_CS=0;       //使能SD卡


        SdCommand(24,address,0xff);//send command 24 写扇区命令      
        if(SdResponse()==0x00)  //command was a success - now send data
        {
               SdWrite(0xfe) ;//发送数据起始令牌
               for(count=0;count<len;count++)
                       SdWrite(*Block++);  //写入512个字节   
               if((SdResponse()&0x0F)==0x05) //sd卡接受数据
               {
                       SD_CS=1;
                       return 0;
               }
               else
                       return 1;
        }
        else
               return 1;
}






当我用SdWriteBlock某一个扇区写入512字节后,接着用SdReadBlock读出这512个字节,但是发现执行第一次SdReadBlock函数时SdResponse函数返回的一直是0xff,只有再一次执行SdReadBlock函数的时候,才可以把512个字节读出来,请问大家这是什么情况了,谢谢


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
麦特拉布
1楼-- · 2019-07-16 03:41
sd卡的写操作不是说你发完数据就算结束的
发完数据之后,sd卡需要花费一点时间把数据烧录进去
这段时间之内可能不响应你
你需要查询sd卡是否完成操作,才能进行下一步
shancheli12
2楼-- · 2019-07-16 04:58
SLKHAFA
sunfenglei1990
3楼-- · 2019-07-16 05:49
学习中

一周热门 更多>