中级会员
- 积分
- 271
- 威望
- 189
- 贡献
- 22
- 兑换币
- 0
- 注册时间
- 2009-2-21
- 在线时间
- 30 小时
|
我在做SD卡的时候,能够正确的初始化,和读取里面的数据,但是不能写数据,在执行写函数以后,再也不能初始化和读取数据了,只有把sd卡的引脚全部断开(包括电源)才能重新初始化和读取,但是还是不能写数据。我的写函数如下:
unsigned char SD_WriteData(byte *Write_Buff,dword length)
{
static byte r1;
dword i;
r1=SD_SendCMD(25,0x00,0x00); //发多块写入指令
if(r1!=0x00)
{
putstr("CMD25 faild\r\n");
return 0;
}
SD_CS=0;
//等待SD卡准备好
SPI_WriteByte(0xff);
SPI_WriteByte(0xff);
SPI_WriteByte(0xfc);
for(i=0;i<512;i++)
{
SPI_WriteByte(*Write_Buff);
Write_Buff++;
}
SPI_WriteByte(0xff);
SPI_WriteByte(0xff);
r1=SPI_ReadByte();
if((r1&0x0f)!=0x05)
{
putstr("write data error\r\n");
return 0 ; //数据如果数据出错,死机。。。。。。
}
SD_CS=1;
putstr("write data seccussful\r\n");
return 1;
} |
|