当前位置: 代码迷 >> 单片机 >> 创造txt文档,莫名的错!
  详细解决方案

创造txt文档,莫名的错!

热度:90   发布时间:2016-04-28 15:48:54.0
创建txt文档,莫名的错!!!
不知道为什么指定文件有txt文件并且文件不能是o字节,就可以写,0字节就会导致存储盘出错,要求你再pc端格式化(只是说没有格式化,而且不知为什么不能追加!!!)
if(!DRV_ActiveUD(0,MODE_SLOW))
  {
  goto ExitFileSys;
  }
   
  if(!DRV_ActiveDrive('C', MODE_SLOW))
  {
  goto ExitFileSys;
  }
   
  if (!FS_Init())
  {
  SetTextPos(16 ,20) ;
  PutS("c",1) ;
  goto ExitFileSys;
  }
  if(!FS_CD("\:"))
  {
  SetTextPos(20 ,20) ;
  PutS("d",1);
  goto ExitFileSys;
  }
  if (!FS_CD(RecordName))
  {
  SetTextPos(24 ,20) ;
  PutS("e",1) ;
  goto ExitFileSys;
  }
   
  fp = FS_FOpen(output_file, FS_OPEN_NORMAL);
  if (fp == NULL) //可能是不存在
  {
  SetTextPos(28 ,20) ;
  PutS("f",1);
  UpdateScreen(NULL) ;

fp = FS_FCreate(output_file); //创建一个
/* fp = FS_FOpen(output_file,FS_OPEN_NORMAL);
if(fp == NULL)
{
SetTextPos(34 ,20) ;
PutS("k",1) ;
UpdateScreen(NULL) ;

goto ExitFileSys ;
}*/
  }
   
  if(!FS_FWrite(ptr , 1 ,fp))
  {
  SetTextPos(32 ,20) ;
  PutS("g",1);
  goto CloseFile ;
  }

memset(ptr, '0' , sizeof(ptr)) ;

  if(!FS_FRead(ptr , 0x01 , fp))
  {
  SetTextPos(36 ,20) ;
  PutS("h",1) ;
  goto CloseFile ; 
  }
   
  FS_FClose(fp) ;

  CloseFile: FS_FClose(fp);
  ExitFileSys: FS_Exit();
  UpdateScreen(NULL) ;

  SetAsciiFont(FONT_TYPE_LARGE);
  SetTextPos(24 ,36) ;
  PutS(ptr,6) ;
  UpdateScreen(NULL) ;
   
  FS_FClose(fp) ;

------解决方案--------------------
额,新建了个TXT文件看了下,是0字节,那就不知道你的问题了
------解决方案--------------------

没做过,随便猜测下

fp = FS_FCreate(output_file); //创建一个
/* fp = FS_FOpen(output_file,FS_OPEN_NORMAL);

改成fp = FS_FOpen(output_file,FS_CREATE_ALWAYS);

或者 FS_Open(output_file,FS_CREATE);
看看
  相关解决方案