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

📄 udisk.h

📁 51读写u盘 uart.c main.c rwudiskdemo.c
💻 H
字号:
#ifndef __UDISK_H
#define __UDISK_H
#include "config.h"

/* 文件指针调整方式 */
#define SEEK_SET    0               /* 从文件开始处移动文件指针 */
#define SEEK_CUR    1               /* 从文件当前位置移动文件指针 */
#define SEEK_END    2               /* 从文件尾移动文件指针 */

/* 函数返回值 */
#define RETURN_OK                   0x00    /* 操作成功         */
#define NOT_FIND_DISK               0x01    /* 逻辑盘不存在     */
#define DISK_FULL                   0x02    /* 逻辑盘满         */
#define SECTOR_NOT_IN_CACHE         0x03    /* 扇区没有被cache  */
#define NOT_EMPTY_CACHE             0x04    /* 没有空闲cache    */
#define SECTOR_READ_ERR             0x05    /* 读扇区错误       */
#define CLUSTER_NOT_IN_DISK         0x06    /* 逻辑盘中没有此簇  */
#define NOT_FIND_FDT                0x07    /* 没有发现文件(目录)*/
#define NOT_FAT_DISK                0x08    /* 非FAT文件系统    */
#define FDT_OVER                    0x09    /* FDT索引超出范围  */
#define FDT_EXISTS                  0x0a    /* 文件(目录)已经存在*/
#define ROOT_FDT_FULL               0x0b    /* 根目录满         */
#define DIR_EMPTY                   0x0C    /* 目录空           */
#define DIR_NOT_EMPTY               0x0d    /* 目录不空         */
#define PATH_NOT_FIND               0x0e    /* 路径未找到       */
#define FAT_ERR                     0x0f    /* FAT表错误       */
#define FILE_NAME_ERR               0x10    /* 文件(目录)名错误 */
#define FILE_EOF                    0x11    /* 文件结束        */
#define FILE_LOCK                   0x12    /* 文件被锁定       */
#define NOT_FIND_FILE               0x13    /* 没有发现指定文件 */
#define NOT_FIND_DIR                0x14    /* 没有发现指定目录 */
#define GET_TIME_ERR                0x15    /* 获取时间错误 */
#define DISK_NO_FORMAT              0x16    /* 逻辑盘没有格式化 */
#define NOT_RUN                     0xfd    /* 命令未执行       */
#define BAD_COMMAND                 0xfe    /* 错误命令       */
#define PARAMETER_ERR               0xff    /* 非法参数        */

typedef struct _F_HANDLE
{
	uint8	fh;
	uint32	fsize;
	
}FHANDLE;

typedef struct __SYSINF{
	uint8	Baud;
	uint8	Year;
	uint8	Month;
	uint8	Dom;
	uint8	Hour;
	uint8	Min;
	uint8	Sec;
	
	uint8	DiskIn;
	FHANDLE	FH;

	uint8	version;
}SYSINF;

typedef struct _CONTR_DISK	
{
	uint8 cmd;				// 指令代码
	uint8 cmds;				// 操作文件句柄
	
//	uint32 offset;			// 指针跳转偏移量
	
	char 	*fname;			// 文件名与路径
	
//	uint8	*read_ptr;		// 读出的数据缓冲区指针
	uint16 	rlen;			// 读出的数据长度
	uint8	*write_ptr;		// 写入的数据缓冲区指针
	uint16 	wlen;			// 写入的数据长度
	
	
 volatile	uint8	state;			// 状态
}CONTR_DISK;


void	DriverIni(void);
uint8  GetDiskInfo(SYSINF *sysinfptr);
uint8  SetDiskInfo(SYSINF *sysinfptr);
FHANDLE *FileOpen(char *DirFileName);
uint8 FileClose(void);
uint32 FileWrite(uint8 *Buf, uint32 Size, FHANDLE *Handle);
uint32 FileRead(uint8 *Buf, uint32 Size, FHANDLE *Handle);
uint8 MakeDir(char *Path);
uint8 FileSeek(FHANDLE *Handle, int32 offset, uint8 Whence);

#endif

⌨️ 快捷键说明

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