FATFS移植的问题,求大神们帮忙

2019-07-21 08:53发布

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 文件不存在   但是如果不关闭文件写完直接读,读出的内容是正确的, 关闭文件后文件就不存在了,用模拟优盘看过  确实没有! 但是烧入例程源码就是正确的  求大神帮忙!或者指点下应该在哪里查找问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。