int main(void)
{
FRESULT fres;
LED1_GPIO_Config();
LED2_GPIO_Config();
LED3_GPIO_Config();
Usart1_config();
printf("这是一个FatFs文件系统移植实验
");
fres= f_mount(&fsObject,"1:",1);
if(fres!=FR_OK)
{
if(fres==FR_NO_FILESYSTEM) //
{
printf("Flash没有文件系统,即将进行格式化...错误代码:%d
",fres);
fres=f_mkfs("1:",0,0);//格式化
if(fres==0)
{
printf("Flash格式化成功,重新开始挂载>>>>>>
");
f_mount(NULL,"1:",1);
fres= f_mount(&fsObject,"1:",1);
if(fres==0)
{
printf("重新挂载成功
");
LED_GREEN;
}
}
}
else
{
printf("SPI_FLASH挂载失败,错误代码:%d
",fres);
LED_RAD;
}
}
else
{
printf("SPI_FLASH挂载成功
");
LED_GREEN;
}
/*挂载成功后 下面开始写入*/
fres=f_open(&fp,"1:中文文件名.txt",FA_CREATE_ALWAYS|FA_WRITE);
if(fres==FR_OK)
{
printf("打开文件成功>>>>>>>准备写入
");
fres=f_write(&fp,wdate,sizeof(wdate),&bw);
if(fres==FR_OK)
{
printf("写入成功>>>>>>>写入字节数为:%d
写入的内容为:%s
",bw,wdate);
fres=f_close(&fp);
}
else
{
printf("文件写入失败,错误代码为:%d
",fres);
}
}
else
{
printf("文件打开失败,错误代码为:%d
",fres);
}
/* 写入成功 下面开始读出数据内容*/
//fres=f_open(&fp,"1:中文文件名.txt",FA_OPEN_ALWAYS|FA_READ|FA_WRITE);
fres=f_open(&fp,"1:中文文件名.txt",FA_OPEN_EXISTING|FA_READ|FA_WRITE);
if(fres==FR_OK)
{
printf("文件打开成功,现在开始读取数据内容
");
//fres=f_write(&fp,wdate,sizeof(wdate),&bw);
//f_lseek(&fp,0);
fres=f_read(&fp,rdate,f_size(&fp),&rw);
if(fres==FR_OK)
{
printf("读取成功>>>读出字节数为:%d
读出内容为:%s
",rw,rdate);
}
else
{
printf("文件读取失败,错误代码为:%d",fres);
}
}
else
{
printf("文件打开失败,错误代码为:%d",fres);
}
f_close(&fp);
f_mount(NULL,"1:",1);
while(1);
问题描述: 上面代码在 写入完毕,关闭文件再用f_open函数打开文件准备读的时候 打开文件失败 错误代码4:FR_NO_FILE 文件不存在 但是如果不关闭文件写完直接读,读出的内容是正确的, 关闭文件后文件就不存在了,用模拟优盘看过 确实没有! 但是烧入例程源码就是正确的 求大神帮忙!或者指点下应该在哪里查找问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>