去掉SD卡,挂载w25Q64,烧入程序后显示Fatfs Error!
问题应该在exf_getfree("1",&total,&free)函数返回错误代码!不解 求助!!谢谢
int main(void)
{
u32 total,free;
u8 t=0;
//u32 FLASH_SIZE;
Stm32_Clock_Init(9);//?????±???è??
delay_init(72);//???±??????
uart_init(72,9600); //?®??1??????
exfuns_init();//??fatfs?à??±????ê??????
LCD_Init();//?????????§
LED_Init();//LED??????
SPI_Flash_Init();//SPI FLASH ??????
usmart_dev.init(72);
mem_init();//????????????
SD_CS=1;
POINT_COLOR=RED;//?è??×??????ì??
LCD_ShowString(60,50,200,16,16,"Mini STM32");
LCD_ShowString(60,70,200,16,16,"FATFS TEST");
LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(60,110,200,16,16,"Use USMART for test");
LCD_ShowString(60,130,200,16,16,"2014/3/14");
/*while(SD_Initialize())//?ì??SD?¨
{
LCD_ShowString(60,150,200,16,16,"SD Card Error!");
delay_ms(200);
LCD_Fill(60,150,240,150+16,WHITE);//????????
delay_ms(200);
LED0=!LED0;//DS0????
}*/
while(SPI_Flash_ReadID()!=W25Q64)//?ì??????W25Q64
{
LCD_ShowString(60,150,200,16,16,"25Q64 Check Failed!");
delay_ms(500);
LCD_ShowString(60,150,200,16,16,"Please Check! ");
delay_ms(500);
LED0=!LED0;//DS0????
}
LCD_ShowString(60,150,200,16,16,"25Q64 Ready!");
//FLASH_SIZE=8*1024*1024; //FLASH ?ó????8M×???
exfuns_init();//??fatfs?à??±????ê??????
//f_mount(fs[0],"0:",1);//????SD?¨
f_mount(fs[1],"1:",1);//????FLASH.
/*while(exf_getfree("0",&total,&free))//????SD?¨??×??????????à????
{
LCD_ShowString(60,150,200,16,16,"Fatfs Error!");
delay_ms(200);
LCD_Fill(60,150,240,150+16,WHITE);//????????
delay_ms(200);
LED0=!LED0;//DS0????
}*/
while(exf_getfree("1",&total,&free))//????Flash??×??????????à????
{
LCD_ShowString(60,150,200,16,16,"Fatfs Error!");
delay_ms(200);
LCD_Fill(60,150,240,150+16,WHITE);//????????
delay_ms(200);
LED0=!LED0;//DS0????
}
POINT_COLOR=BLUE;//?è??×?????????
LCD_ShowString(60,150,200,16,16,"FATFS OK!");
//LCD_ShowString(60,170,200,16,16,"SD Total Size: MB");
//LCD_ShowString(60,190,200,16,16,"SD Free Size: MB");
//LCD_ShowNum(172,170,total>>10,5,16);//????SD?¨×????? MB
//LCD_ShowNum(172,190,free>>10,5,16);//????SD?¨???à???? MB
LCD_ShowString(60,170,200,16,16,"Flash Total Size: MB");
LCD_ShowString(60,190,200,16,16,"Flash Free Size: MB");
LCD_ShowNum(172,170,total>>10,5,16);//????SD?¨×????? MB
LCD_ShowNum(172,190,free>>10,5,16);//????SD?¨???à???? MB
while(1)
{
t++;
delay_ms(200);
LED0=!LED0;
}
|