📄 udisk.h
字号:
#define uchar unsigned char
#define UINT8 unsigned char
#define ulong unsigned long
#define uint unsigned int
#define SLAVE_ADDR 0x60
//主机向模块发送的指令码
#define R_UDISK_READY 0x80 //查询优盘是否准备好
#define R_DEL_FILE 0x81 //删除文件
#define R_OPEN_FILE 0x83 //打开文件
#define R_SET_OFFSETBYTE 0x84 //设置文件指针
#define R_RD_FILE_DATA 0x85 //读取文件内容
#define R_WR_FILE_DATA 0x86 //写入文件内容
#define R_RD_FILE_ATTR 0x87 //读取文件属性
#define R_CLOSEFILE 0x88 //关闭文件
#define R_NEW_FILE 0x89 //新建文件
#define R_RD_DISK_ATTR 0x8A //读取磁盘容量
#define R_MODIFY_ATTR 0x8B //修改打开文件的属性
#define R_NEW_DIR 0x8C //新建文件夹
#define R_RD_FILE_SECTOR 0x8D //扇区方式读文件
#define R_WR_FILE_SECTOR 0x8E //扇区方式写文件
#define R_RESET 0x8F //重启动模块
#define R_SET_OFFSETSECTOR 0x90 //设置扇区模式下的文件指针
//从机返回值
#define A_SUCCESS 0x40 //操作成功
#define A_CONTINUE 0x41 //继续,未使用
#define A_FAIL 0x42 //失败
#define A_NOTOPEN 0x43 //操作文件没有打开
#define A_REPLACE_REQ 0x44 //新建文件有重名是否替换之,未使用
#define A_BUSY 0x45 //操作忙
#define A_NOTREADY 0x46 //优盘未准备好
#define A_READY 0x47 //准备好
#define A_OPEN 0x48 //打开状态
#define A_BYTEMODE 0x49 //字节模式打开,不能进行扇区的读写
//大状态变量:B_STATUS的取值
#define S_NOTREADY 0x01 //优盘未连接
#define S_READY 0x02 //优盘已连接但未进行数据交换
#define S_OPEN 0x03 //优盘有文件打开,但未读写数据
#define S_BUSY 0x04 //正在忙
#define LOCATE_BYTE_MODE 0
#define LOCATE_SECTOR_MODE 0xff
//模块的数据最大传输字节数
#define MAX_BYTE_TRANS 512
#define MAX_BYTE_IO 255
typedef union _COM_BUFF
{
uchar FrameBuff[MAX_BYTE_TRANS+5];
struct
{
uint FrameLen; //此数据帧长度
uchar Com; //指令或者应答
union
{
uchar FileName[MAX_BYTE_IO];
ulong SetOffset; //设置文件字节偏移指针
uint ReadBytes; //读取字节数
struct
{
uint Bytes; //写入文件字节数
uchar DataBuff[MAX_BYTE_TRANS];
}WriteDataVer;
struct
{ //用于属性修改
ulong FileSize; //文件大小
uint FileDate; //文件日期
uint FileTime; //文件时间
uchar FileAttr; //文件属性
}ModifyFileAttrVer;
}VeryData; //真正的数据
}ReqData; //请求方数据
struct
{
uint FrameLen; //此帧数据长度
uchar Ack; //应答
union
{
uint RealWriteByte; //真正写入的字节数
ulong RealOffset;
struct
{
uint ReadBytes;
uchar DataBuff[MAX_BYTE_TRANS];
}ReadDataVer;
struct
{
ulong FileSize; //文件大小
uint FileDate; //文件日期
uint FileTime; //文件时间
uchar FileAttr; //文件属性
}ReadFileAttrVer;
struct
{
ulong DiskSize; //磁盘大小,KB
ulong TotalSize; //当前分区大小,KB
ulong FreeSize; //当前分区空闲大小,KB
uchar DiskFat; //当前分区类型
}ReadDiskAttrVer;
struct
{ //用于属性修改
ulong FileSize; //文件大小
uint FileDate; //文件日期
uint FileTime; //文件时间
uchar FileAttr; //文件属性
}ModifyFileAttrVer;
}VeryData; //真正的数据
}AckData; //应答方数据
}COM_BUFF;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -