搜索
bottom↓
回复: 1

fatfs数据读取问题

[复制链接]

出0入0汤圆

发表于 2014-8-2 22:37:20 | 显示全部楼层 |阅读模式
刚学着移植fatfs,有很多地方都不是很明白,假如在Micro SD中建立了2个txt文本文件,文件A.txt和文件B.txt,使用下面所示的代码,其中可以很准确的读出路径名,但是不能将 文件A.txt和文件B.txt中的内容输出,得到的结果如下所示:
  f_mount(&fs , &m_num , 1);
  if(f_opendir(&dirs , path) == FR_OK)                                  
  {
       UART_Print("open dir OK\n");                         
       while(f_readdir(&dirs , &finfo) == FR_OK)
          {
            if(finfo.fattrib & AM_ARC)
            {
          if(!finfo.fname[0])
             {
                 break;                                                          
             }
         UART_Print("当前路径文件名:%s\n" , finfo.fname);
         res = f_open(&fsrc, finfo.fname, FA_OPEN_EXISTING | FA_READ);                 
         res = f_read(&fsrc, buffer, sizeof(buffer), &br);
         UART_Print("\r\n%s\r\n", buffer);                                                                                                                 
           }
         }
}

////////////////////////////////////////////////////////
结果:
当前路径文件名:文件A.TXT


当前路径文件名:文件B.TXT

文件A:1、2、3
////////////////////////////////////////////////////////

从得到的结果中可以看到,当文件A的路径名打印出来后,并没有将文件内容输出,而是输出了\r\n,Debug的时候也发现buffer为,打印完文件B这个目录后执行f_read函数会得到文件A.TXT这个里面的内容,并不是文件B里面的内容,最后结束程序。
问题如下:
(1)我想要代码表达的意思是:打开文件A.TXT这个文件,将这个文件里面的内容通过f_read()函数转移到buffer数组里面(长度为512)然后输出,完了以后接着打开文件B.TXT,然后将里面的内容输出,但是上面的代码并没有按照这样去执行,可否帮忙分析分析,谢谢!
(2)f_read()函数的第三个参量,就是代码中的br究竟是干嘛用的?我看这个函数的应用,感觉没有完全理解清楚,希望可以指导指导!


阿莫论坛20周年了!感谢大家的支持与爱护!!

该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981

出0入0汤圆

 楼主| 发表于 2014-8-3 10:47:20 | 显示全部楼层
renpeng009 发表于 2014-8-2 23:08
把你的  UART_Print  原型 写出来

我觉得这个问题并不在print函数上面,因为我Debug的时候buffer这个数组都没有值,只有当把所有的路径全部读出来,然后在去读文件A中的内容,buffer里面才有值,并且可以成功打印出来。所以我觉得还是在f_read(),f_open()这个几个函数上面。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-1 18:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表