我的SD卡发送写命令,返回时对的(0x00),但写完数据,再返回的不对了,返回的是0x01了,各位高人帮个忙啊!我的写数据代码函数是:
void sd_write_single_data(unsigned char*write_data)
{
unsigned int i;
unsigned char j;
unsigned char k;
unsigned int m;
cs = 0;
do
{
sd_write_cmd(0x18,0x01DDD010,0xFF); //0x18在函数里处理过了,就是CMD24
j = spi_read();
i++;
}
while((j==1)&&(i<300));
for(i=0;i<100;i++)
{
spi_write(0xff);
}
UART2_SEND(j);
if(j==0)writecmd_right_led = 0;
else writecmd_error_led = 0;
spi_write(0xfe);
for(m=0;m<512;m++)
{
spi_write(write_data[i]);
// UART2_SEND(*write_data++);
}
spi_write(0xFF);
spi_write(0xFF);
delay(500);
k = spi_read();
UART2_SEND(k);
if((k&0x1F)==0x05)writedata_success_led = 0;
} |