⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fat.h

📁 SD卡的读写
💻 H
字号:
#ifdef fat_h
#define MAXFILES 1					//设置系统中最多同时打开的文件的个数
typedef unsigned char UCHAR;
typedef unsigned int   UINT;
typedef unsigned long ULONG;
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned char u8;
typedef unsigned short int u16;
typedef unsigned long u32;
typedef unsigned short int WORD;
typedef unsigned char BYTE;
typedef unsigned long DWORD;

// BIOS 参数块
struct bpb710 {
		WORD	bpbBytesPerSec;	// 每扇区字节数						2	0x0b		
		BYTE	bpbSecPerClust;	// 每簇扇区数						1	0x0d
		WORD	bpbResSectors;	// 保留区域中的保留扇区数		2	0x0e
		BYTE	bpbFATs;		// FAT表的份数						1	0x10
		WORD	bpbRootDirEnts;	// 根目录项数						2	0x11
		WORD	bpbSectors;		// 此域为存储卷上的扇区总数	2	0x13
		BYTE	bpbMedia;		// 固定存储介质描述				1	0x15

		WORD	bpbFATsecs;		// FAT表所占的扇区数				2	0x16
		
		WORD	bpbSecPerTrack;	// 每道扇区数
		WORD	bpbHeads;		// 磁头数
		DWORD	bpbHiddenSecs;	// 隐藏扇区数
		DWORD	bpbHugeSectors;	// 总扇区数

		DWORD     bpbBigFATsecs;// 每个FAT区所占扇区数
		WORD      bpbExtFlags;	// 扩展标志
#define FATNUM    0xf			
#define FATMIRROR 0x80			
		WORD      bpbFSVers;	// 文件系统版本
#define FSVERS    0				
		DWORD     bpbRootClust;	// 根目录簇号
		WORD      bpbFSInfo;	// 文件系统信息扇区号
		WORD      bpbBackup;	// 备份引导扇区
};

typedef struct
{
	u8 FileName[11];
	u8 FileAttrib;
	u8 UnUsed[8];
	u16	StartHight;	
	u8 FileUpdateTime[2];
	u8 FileUpdateData[2];
	u16	StartLow;
	u32 Size;
}FFS;		//Fat File struction

typedef struct
{
	u32 StartClust;	//当不为0 代表这个文件已经被打开
	u32 Size;
	u32 FatPos;		//记录所在FAT 表格中的位置	为以后文件修改做的记录
	u32 Seek;		//文件操作指针
	u32 CurClust;
	u32 CurSector;
}FOPT;

#endif


unsigned long FatSetBlock0();
unsigned char FatReadBlock(ULONG addr);
void InitFat32();

unsigned char fopen( const unsigned char *file);
unsigned char fread(void *save,unsigned long len,unsigned char file_number);
unsigned char fclose(unsigned char file_number);
unsigned char fseek(unsigned char file_number,unsigned long addr,unsigned char type);		//文件定位	主要设置 clust sector and seek
unsigned long ftell(unsigned char file_number);
void fprtfile(unsigned char file_number);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -