关于fatfs输出txt文件的问题,有些困惑请指教

2019-07-20 18:47发布

关键代码如下
  1. void txt(u8* fname)
  2. {
  3.   //FIL* test;
  4.     FIL* ftemp;
  5.     u8* buf;
  6.     u32 br=1;
  7.     u8 res=0;
  8. //  test = (FIL*)mymalloc(SRAMIN, sizeof(FIL));
  9.     ftemp = (FIL*)mymalloc(SRAMIN,sizeof(FIL));
  10.     buf=mymalloc(SRAMIN,512);
  11.     if(ftemp&&buf)
  12.     {
  13.         res=f_open(ftemp,(TCHAR*)fname,FA_READ);
  14. //        res=f_open(test,"0:/TXT/test.c",FA_OPEN_ALWAYS | FA_READ | FA_WRITE);
  15.         if(res == FR_OK)
  16.         {
  17.             printf(" 开始输出txt文件 ");
  18.             for(;;)
  19.             {   
  20.                 res=f_read(ftemp,buf,sizeof(buf),&br);
  21. //                f_puts((TCHAR*)buf, test);
  22. //                f_sync(test);
  23.                 printf("%s",buf);
  24.                 if(res || br<sizeof(buf)) break;
  25.             }
  26.         }
  27.                 else
  28.                         printf("文件打开失败 ");
  29.     }
  30.         else
  31.                 printf("内存分配失败 ");
  32.         f_close(ftemp);
  33. //        f_close(test);
  34. //        myfree(SRAMIN,test);
  35.         myfree(SRAMIN,ftemp);
  36.         myfree(SRAMIN,buf);
  37. }


复制代码


SNAG-16112016055700.png

这是输出结果,问题就是每个四个字节出来一个 ‘T’,  很是疑惑
将代码中的注释撤销,结果‘T'就没了
SNAG-16112016090700.png

很是迷惑注释部分所实现的功能是将原有的txt文件的内容输出到新的txt内,
求解惑谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。