读取SD卡里文件长度,函数参数不知如何设置
dsoyy 2008-11-13 04:57:10 程序如下:
uint32 OSFileRead(void *Buf, uint32 Size, HANDLE Handle) //读文件内容
参数说明:
** 输 入: Buf:保存读回的数据
** Size:要读的字节数
** Handle:文件句柄
** 输 出: 实际读到的字节数
说明:因为我要读取整个文件长度如TXT和.JPG文件,所以Size(要读的字节数)要替换成文件的长度,因此引出另外一个函数:
uint8 GetFDTInfo(FDT *Rt,uint8 Drive, uint32 ClusIndex, uint32 Index)
函数说明:
** 功能描述: 获取指定目录指定文件(目录)信息
**
** 输 入: Rt:存储返回信息的指针
** Drive:驱动器号
** ClusIndex:目录首簇号
** Index:文件(目录)在FDT中的位置
** 输 出: RETURN_OK:成功
/* 目录表数据结构 */
typedef struct _FDT
{
char Name[11]; //短文件名主文件名
uint8 Attr; //文件属性
uint8 NTRes; //保留给NT
uint8 CrtTimeTenth; //建立时间(fat16保留)
uint16 CrtTime; //建立时间(fat16保留)
uint16 CrtDate; //建立日期(fat16保留)
uint16 LstAccDate; //最后访问日期(fat16保留)
uint16 FstClusHI; //起始簇号高两个字节(fat16保留)
uint16 WrtTime; //最后写时间
uint16 WrtDate; //最后写日期
uint16 FstClusLO; //起始簇(cluster)号低两个字节
uint32 FileSize; //文件大小
} FDT;
/********************************/
/* ZLG/FS需包含的头文件 */
/********************************/
#define MAX_OPEN_FILES 1
我的调用方法:
MY_FILE Fileread[MAX_OPEN_FILES]; //定义一个结构体
GetFDTInfo(0,0, Fileread[FHandle].FstClus, 0); //获取文件信息
OSFileRead(rcv_buf, Fileread[FHandle].FileSize, FHandle); //读取文件内容
说明:
FHandle为指定读取文件的文件句柄,关键在于
GetFDTInfo(0,0, Fileread[FHandle].FstClus, 0); //获取文件信息
这个函数形参的设定
Drive(驱动器号):0
其余的参数设置很迷茫,请指教