文档介绍:基于51单片机FAT32文件系统程序
#ifndef __ZNFAT_H__
#define __ZNFAT_H__
#include "" //类型重定义
/*******************************************************/
//znFAT的裁减宏---------------------------------------------------------
//#define ZNFAT_ENTER_DIR //有此宏,函数 znFAT_Enter_Dir() 参与编译
#define ZNFAT_OPEN_FILE //有此宏,函数 znFAT_Open_File() 参与编译
//#define ZNFAT_SEEK_FILE //有此宏,函数 znFAT_Seek_File() 参与编译
//#define ZNFAT_READ_FILE //有此宏,函数 znFAT_Read_File() 参与编译
//#define ZNFAT_READ_FILEX //有此宏,函数 znFAT_Read_FileX() 参与编译
//#define ZNFAT_ADD_DAT //有此宏,函数 znFAT_Add_Dat() 参与编译
//#define ZNFAT_CREATE_DIR //有此宏,函数 znFAT_Create_Dir() 参与编译
//#define ZNFAT_CREATE_FILE //有此宏,函数 znFAT_Create_File() 参与编译
//#define ZNFAT_DEL_FILE //有此宏,函数 znFAT_Del_File() 参与编译
//#define ZNFAT_XCOPY_FILE //有此宏,函数 znFAT_XCopy_File() 参与编译
//#define ZNFAT_RENAME_FILE //有此宏,函数 znFAT_Rename_File() 参与编译
//#define ZNFAT_GET_TOTAL_SIZE //有此宏,函数 znFAT_Get_Total_Size() 参与编译
//#define znFAT_GET_REMAIN_CAP //有此宏,函数 znFAT_Get_Remain_Cap() 参与编译
#include ""
#include ""
//----------------------------------------------------------------------
#define SOC(c) (((c-pArg->FirstDirClust)*(pArg->SectorsPerClust))+pArg->FirstDirSector) // 用于计算簇的开始扇区
#define CONST const
//设备表
#define SDCARD 0 //SD卡
#define UDISK 1 //U盘
#define CFCARD 2 //CF卡
#define OTHER 3 //其它
//这里的存储设备表,可以灵活扩充,以实现对更多存储设备的支持
//-------------------------------------------
#define MAKE_FILE_TIME(h,m,s) ((((unsigned int)h)<<11)+(((unsigned int)m)<<5)+(((unsigned int)s)>>1))
/* 生成指定时分秒的文件时间数据*/
#define MAKE_FILE_DATE(y,m,d) (((((unsigned int)y)+20)<<9)+(((unsigned int)m)<<5)+((unsigned int)d))
/* 生成指定年月日的文件日期数据*/
//DPT:分区记录结构如下
struct PartRecord
{
UINT8 Active; //0x80表示此分区有效
UINT8 StartHead; //分区的开始磁头
UINT8 StartCylSect[2];//开始柱面与扇区
UINT8 PartType; //分区类型
UINT8 EndHead; //分区的结束头
UINT8 EndCylSect[2]; //结束柱面与扇区
UINT8 StartLBA[4]; //分区的第一个扇区
UINT8 Size[4]; //分区的大小
};
//MBR:分区扇区(绝对0扇区)定义如下
struct PartSector
{
UIN