程序下进去时候可以写入,但是断电重启以后就不能写入了
void Sd_init(void)
{
// u32 total,free;
u8 t=0;
u8 res=0;
UINT bww = 0;
FATFS *fs[_VOLUMES];//?????????¤×÷??.
FIL *ffp; //????1
u8 *fatbuf;
W25QXX_Init();
while(SD_Init())//?ì??????SD?¨
{
delay_ms(500);
LED0=!LED0;//DS0????
}
fs[0]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS)); //??????i?¤×÷???ê??????
ffp=(FIL*)mymalloc(SRAMIN,sizeof(FIL)); //??file?ê??????
fatbuf=(u8*)mymalloc(SRAMIN,512); //??fatbuf?ê??????
f_mount(fs[0],"0:",1); //????SD?¨
//exfuns_init(); //??fatfs?à??±????ê??????
res=f_mount(fs[1],"1:",1); //????FLASH.
if(res==0X0D)//FLASH????,FAT?????????í?ó,??????????FLASH
{
res=f_mkfs("1:",1,4096);//??????FLASH,1,??·?;1,???è????????,8????????1????
if(res==0)
{
LCD_ShowString(30,100,200,16,16,"fmount ok!");
f_setlabel((const TCHAR *)"1:ALIENTEK"); //?è??Flash????????×?????ALIENTEK
}else LED0=!LED0;
delay_ms(1000);
}
LCD_ShowString(30,160,200,16,16,"f_open begin..!");
LED0=!LED0;
res = f_open (ffp,"0:/mysss.txt", FA_WRITE|FA_OPEN_ALWAYS);
if(res == 0)
{
LCD_ShowString(30,190,200,16,16,"f_open ok!");
}
else LCD_ShowString(30,190,200,16,16,"f_open not ok!");
//!!!!!
res = f_write(ffp,"testtest", 10, &bww);
if(res == 0)
{
LED0=!LED0;
}
f_close(ffp);
}
|