lf415744311 发表于 2012-2-21 15:06:43

求助:Petit FatFs+STC12C5A+SD读写问题

主要在这里有很多文件打不开,是不是那里不对?
   if(res=pf_open(fno.fname)!=FR_OK)//


   程序如下:

#include<DATATYPE.H>
#include "string.h"

#include "stc12c5a60s2.h"
#include "spi.h"
#include "uart.h"
#include "tfcard.h"
#include "diskio.h"
#include "pff.h"
#include "LED_DRI.h"

void main(void)
{

        FRESULT res;//FATFS函数公共结果代码
        FATFS fs;           //逻辑驱动器工作区(文件系统对象)
        FILINFO fno;//文件对象(文件结构对象)
         DIR dir;//文件目录对象
        uint br;
        uchar i,j;
   

        uartInit();
        init_STC12();//LED_DIR.h               
        disk_initialize();
       
        res = pf_mount(&fs);//为逻辑驱动器注_册一个FATFS工作区,参数为工作区指针,

        if (res == FR_OK)
        transmitString("\r\n挂载成功!\r\n");
        else
        transmitString("\r\n挂载失败!\r\n");
        transmitString("\r\n返回\t");
        transmitHex(res);

        if(pf_opendir(&dir,"图片") == FR_OK)
        {
                while((res =pf_readdir(&dir,&fno))== FR_OK)
                {                               
                        if (res != FR_OK || fno.fname == 0) break;
                        j = strlen(fno.fname);
                        if('B' == fno.fname && 'M' == fno.fname && 'P' == fno.fname)
                        {

                                  if(res=pf_open(fno.fname)!=FR_OK)//????????问题在这里十几个文件只能打开三几个????????
                                         {
                                          transmitString("\r\n\t打开");
                                          transmitString(fno.fname);
                                          transmitString("失败\r\n");
                                       }
                                   else
                                                    {
                                                    transmitString("\r\n\t打开");
                                           transmitString(fno.fname);
                                           transmitString("成功\r\n");
                                                   }
                               
                        }


          }
       
pf_mount(NULL);

while(1);
}

lf415744311 发表于 2012-2-21 15:09:22

很多是网上抄来的!

lf415744311 发表于 2012-2-21 20:35:24

怎么没人顶 ???

lf415744311 发表于 2012-2-22 19:42:04

问题解决了,if(res=pf_open(fno.fname)!=FR_OK)直接打开fno.fname文件是不行的因为文件路径不正确!要写成:文件夹名/fno.fname,就可以了

sunplus 发表于 2014-1-13 09:43:47

MARK ~~~~~~~~~~~
页: [1]
查看完整版本: 求助:Petit FatFs+STC12C5A+SD读写问题