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

📄 ch375hm.inc

📁 USB接口芯片CH375HM
💻 INC
📖 第 1 页 / 共 2 页
字号:

; ********************************************************************************************************************* */
; 外部命令参数 */
;typedef union _CMD_PARAM {
;	struct {
;		unsigned char	mBuffer[ MAX_PATH_LEN ];
;	} Other;
;	struct {
;		unsigned long	mDiskSizeSec;			; 返回: 整个物理磁盘的总扇区数 */
;		unsigned long	mTotalSector;			; 返回: 当前逻辑盘的总扇区数 */
;		unsigned long	mFreeSector;			; 返回: 当前逻辑盘的剩余扇区数 */
;		unsigned char	mDiskFat;				; 返回: 当前逻辑盘的FAT类型 */
;	} Query;									; CMD_DiskQuery, 查询磁盘信息 */
;	struct {
;		unsigned char	mPathName[ MAX_PATH_LEN ];	; 输入参数: 路径: [盘符,冒号,斜杠,目录名或者文件名及扩展名...,结束符00H], 其中盘符和冒号可以省略, 例如"C:\DIR1.EXT\DIR2\FILENAME.EXT",00H */
;	} Open;										; CMD_FileOpen, 打开文件 */
;	struct {
;		unsigned char	mPathName[ MAX_PATH_LEN ];	; 输入参数: 路径: [盘符,冒号,斜杠,目录名或者文件名及扩展名(含通配符*)...,枚举序号], 其中盘符和冒号可以省略, 例如"C:\DIR1.EXT\DIR2\FILE*",00H */
;	} Enumer;									; CMD_FileEnumer, 枚举文件,返回文件名 */
;	struct {
;		unsigned char	mUpdateLen;				; 输入参数: 是否允许更新长度: 0禁止,1允许 */
;	} Close;									; CMD_FileClose, 关闭当前文件 */
;	struct {
;		unsigned char	mPathName[ MAX_PATH_LEN ];	; 输入参数: 路径: [盘符,冒号,斜杠,目录名或者文件名及扩展名...,结束符00H], 其中盘符和冒号可以省略, 例如"C:\DIR1.EXT\DIR2\FILENAME.EXT",00H */
;	} Create;									; CMD_FileCreate, 新建文件并打开,如果文件已经存在则先删除后再新建 */
;	struct {
;		unsigned char	mPathName[ MAX_PATH_LEN ];	; 输入参数: 路径: [盘符,冒号,斜杠,目录名或者文件名及扩展名...,结束符00H], 其中盘符和冒号可以省略, 例如"C:\DIR1.EXT\DIR2\FILENAME.EXT",00H */
;	} Erase;									; CMD_FileErase, 删除文件并关闭 */
;	struct {
;		unsigned long	mFileSize;				; 输入参数: 新的文件长度,为0FFFFFFFFH则不修改, 返回: 原长度 */
;		unsigned short	mFileDate;				; 输入参数: 新的文件日期,为0FFFFH则不修改, 返回: 原日期 */
;		unsigned short	mFileTime;				; 输入参数: 新的文件时间,为0FFFFH则不修改, 返回: 原时间 */
;		unsigned char	mFileAttr;				; 输入参数: 新的文件属性,为0FFH则不修改, 返回: 原属性 */
;	} Modify;									; CMD_FileQuery, 查询当前文件的信息; CMD_FileModify, 查询或者修改当前文件的信息 */
;	struct {
;		unsigned long	mSectorOffset;			; 输入参数: 扇区偏移,0则移动到文件头,0FFFFFFFFH则移动到文件尾, 返回: 当前文件指针对应的绝对线性扇区号, 0FFFFFFFFH则已到文件尾 */
;	} Locate;									; CMD_FileLocate, 移动当前文件指针 */
;	struct {
;		unsigned char	mSectorCount;			; 输入参数: 读取扇区数, 返回: 实际读取扇区数 */
;	} Read;										; CMD_FileRead, 从当前文件读取数据 */
;	struct {
;		unsigned char	mSectorCount;			; 输入参数: 写入扇区数, 返回: 实际写入扇区数 */
;	} Write;									; CMD_FileWrite, 向当前文件写入数据 */
;	struct {
;		unsigned long	mDiskSizeSec;			; 返回: 整个物理磁盘的总扇区数 */
;	} DiskSize;									; CMD_DiskSize, 查询磁盘容量 */
;	struct {
;		unsigned long	mByteOffset;			; 输入参数: 以字节为单位的偏移量, 以字节为单位的文件指针, 返回: 当前文件指针对应的绝对线性扇区号, 0FFFFFFFFH则已到文件尾 */
;	} ByteLocate;								; CMD_ByteLocate, 以字节为单位移动当前文件指针 */
;	struct {
;		unsigned char	mByteCount;				; 输入参数: 准备读取的字节数,不得大于MAX_BYTE_IO, 返回: 实际读出的字节数 */
;		unsigned char	mByteBuffer[ MAX_BYTE_IO ];	; 返回: 读出的数据块 */
;	} ByteRead;									; CMD_ByteRead, 以字节为单位从当前文件读取数据块 */
;	struct {
;		unsigned char	mByteCount;				; 输入参数: 准备写入的字节数,不得大于MAX_BYTE_IO,如果为0则刷新文件长度而不写入,如果不为0则写入数据但不刷新文件长度, 返回: 实际写入的字节数 */
;		unsigned char	mByteBuffer[ MAX_BYTE_IO ];	; 输入参数: 准备写入的数据块 */
;	} ByteWrite;								; CMD_ByteWrite, 以字节为单位向当前文件写入数据块 */
;	union {
;		struct {
;			unsigned long	mCBW_Sig;
;			unsigned long	mCBW_Tag;
;			unsigned char	mCBW_DataLen;		; 输入: 数据传输长度,有效值是0到255 */
;			unsigned char	mCBW_DataLen1;
;			unsigned char	mCBW_DataLen2;
;			unsigned char	mCBW_DataLen3;
;			unsigned char	mCBW_Flag;			; 输入: 传输方向等标志 */
;			unsigned char	mCBW_LUN;
;			unsigned char	mCBW_CB_Len;		; 输入: 命令块的长度,有效值是1到16 */
;			unsigned char	mCBW_CB_Buf[1];		; 输入: 命令块,该缓冲区最多为16个字节 */
;		} mCBW;									; BulkOnly协议的命令块, 输入CBW结构 */
;		struct {
;			unsigned long	mCSW_Sig;
;			unsigned long	mCSW_Tag;
;			unsigned long	mCSW_Residue;		; 返回: 剩余数据长度 */
;			unsigned char	mCSW_Status;		; 返回: 命令执行结果状态 */
;			unsigned char	mReserved;
;		} mCSW;									; BulkOnly协议的命令状态块, 输出CSW结构 */
;	} BOC;										; CMD_BulkOnlyCmd, 执行基于BulkOnly协议的命令, 如果有数据传输那么数据在DISK_BASE_BUF中 */
;	struct {
;		unsigned char	mPathName[ MAX_PATH_LEN ];	; 输入参数: 路径: [盘符,冒号,斜杠,目录名或者文件名及扩展名...,结束符00H], 其中盘符和冒号可以省略, 例如"C:\DIR1.EXT\DIR2\FILENAME.EXT",00H */
;	} DirCreate;								; CMD_DirCreate, 新建目录并打开,如果目录已经存在则直接打开 */
;	struct {
;		unsigned char	mSectorCount;			; 返回: 实际读取扇区数,为1则已经读取最后扇区,为0则没有零碎数据(文件长度是512的倍数) */
;	} ReadLast;									; CMD_FileReadLast, 从当前文件的尾部读取不足一个扇区长度的零碎数据 */
;	struct {
;		unsigned char	mLastStatus;			; 返回: 上次的操作状态 */
;		unsigned char	mDiskStatus;			; 返回: 磁盘及文件状态 */
;		unsigned char	mIntStatus;				; 返回: CH375操作的中断状态 */
;		unsigned char	reserved;
;		unsigned long	mFileSize;				; 返回: 当前文件的长度 */
;		unsigned long	mCurrentOffset;			; 返回: 当前文件指针,当前读写位置的字节偏移 */
;	} Status;									; CMD_QueryStatus, 查询当前模块的状态 */
;	struct {
;		unsigned char	mFileLibVer;			; 返回: 子程序库的版本号 */
;		unsigned char	mModuleVer;				; 返回: 模块的版本号 */
;	} GetVer;									; CMD_GetVer, 获取当前模块的版本号 */
;	struct {
;		unsigned char	mDivisor;				; 输入参数: 通讯波特率除数 */
;	} BaudRate;									; CMD_BaudRate, 设置串口通讯波特率 */
;	struct {
;		unsigned char	mSetup;					; 输入参数: 模块配置值,位0为1则空闲时查询U盘连接状态并自动中断通知,位4为1则在添加数据后自动更新文件长度(设置CH375LibConfig的位4) */
;	} Setup;									; CMD_SetupModule, 设置模块配置 */
;	struct {
;		unsigned char	mData;					; 输入参数或者返回: 字节数据 */
;	} Direct;									; CMD_DirectWrCmd, 直接传递给CH375,写命令; CMD_DirectRdDat, 直接传递给CH375,读数据; CMD_DirectWrDat, 直接传递给CH375,写数据 */
;	struct {
;		unsigned char	mStringSN[16];			; 返回: 产品序列号字符串 */
;	} GetSN;									; CMD_GetStringSN, 获取产品序列号字符串 */
;} CMD_PARAM;
;
; ********************************************************************************************************************* */
; 三线串口的命令同步,用两个串口同步码代替STA#引脚的下降沿进行命令码同步 */
SER_SYNC_CODE1		EQU		057H	; 启动操作的第1个串口同步码 */
SER_SYNC_CODE2		EQU		0ABH	; 启动操作的第2个串口同步码 */

; ********************************************************************************************************************* */

⌨️ 快捷键说明

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