|
原子哥,我现在调试出现这种情况:板子掉电再上电后,需要重复RESET好几次,SD卡才能读写成功。如图
修改后的代码:
[mw_shl_code=c,true]int main(void)
{
GPIO_LED_Configuration();
USART1_Config();
NVIC_Configuration();
USART2_Config();
SPI2_Configuration();
printf(" Creating File......\r\n");
//SD?¨????????
res = f_mount(0, &fs); //????????0,??????????????fs
printf("SD Mounting error code %d\r\n", res);
delay(1000);
//USART1_RX_STA=0;
while(1)
{
if(USART1_RX_STA&0x8000)//?®????????????
{
rxlen=USART1_RX_STA&0X7FFF; //?????????¤??
printf("rxlen: %d\n" , rxlen);
for(i=rxlen;i<FILE_MAX_SIZE;i++)
{
USART1_RX_BUF=' ';
}
res = f_open(&file, "data.txt", FA_CREATE_ALWAYS | FA_WRITE); //???¨????
while(res != FR_OK)
{
res = f_open(&file, "data.txt", FA_CREATE_ALWAYS | FA_WRITE); //???¨???? FA_CREATE_ALWAYS |
printf("Failed,error code %d\t EXIT!\r\n", res);
return 0;
}
printf("File Created Succeed \r\n");
pointer=file.fsize; //?????????ó??
res=f_lseek(&file,pointer);//????????????
res = f_write(&file, USART1_RX_BUF,rxlen, &br);
if(res==FR_OK)
{
printf("write data ok!\r\n");
}
else
{
printf("write data error!\r\n");
}
res=f_close(&file); //??±??ò????????
USART1_RX_STA=0; //??????????????
}
}
}[/mw_shl_code]
|