本人最近研究原子哥的例程,改编了个FATFS文件读写程序,有点问题,代码中被注释的地方,若取消注释,则程序就不知卡在何处,求指导?!
是和 ffconfig.h 最多允许打开文件配置有关?还是文件系统允许重入有关?还是个人程序操作有误?
/*变量定义*/
u16 ctemp=0;
/*函数声明*/
void StartUp(void);
int main(void)
{
StartUp();
  OINT_COLOR=RED;
LCD_ShowString(10,10,"FATFS Test :");
while(1)
{
LCD_ShowNum(10,40,ctemp,1,12);
LED1=!LED1;
ctemp++;
delay_ms(500);
if(ctemp==10) ctemp=0;
}
}
void StartUp(void)
{
FATFS fs;
//FIL * fsd;
FIL * nf;
u8 res;
//char read_buf[16];
char write_buf[]={"It is a file create test!"};
SystemInit();
delay_init(72);
NVIC_Configuration();
LED_Init();
KEY_Init();
uart_init(9600);
LCD_Init();
SPI_Flash_Init(); //SPI FLASH初始化
f_mount(0, &fs); //初始化必须mount
// res=f_open(fsd,"test.txt",FA_READ);
// if(res)//打开文件失败
// {
// f_close(fsd);
// LCD_ShowString(10,10,"Open File Error!");
// while(1)
// {
// LED0=0;
// }
// }
// f_gets(read_buf,sizeof(read_buf),fsd);
// printf(read_buf);
// f_close(fsd);
res=f_open(nf,"nm.txt",FA_CREATE_ALWAYS|FA_WRITE);
if(res)//创建文件失败
{
f_close(nf);
LCD_ShowString(10,10,"Create File Error!");
while(1)
{
LED0=0;
}
}
f_puts(write_buf,nf);
f_close(nf);
}
|