求助: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);
} 很多是网上抄来的! 怎么没人顶 ??? 问题解决了,if(res=pf_open(fno.fname)!=FR_OK)直接打开fno.fname文件是不行的因为文件路径不正确!要写成:文件夹名/fno.fname,就可以了 MARK ~~~~~~~~~~~
页:
[1]