u盘读写控制源程序ch376芯片

上传人:re****.1 文档编号:511334528 上传时间:2024-01-15 格式:DOC 页数:71 大小:1.25MB
返回 下载 相关 举报
u盘读写控制源程序ch376芯片_第1页
第1页 / 共71页
u盘读写控制源程序ch376芯片_第2页
第2页 / 共71页
u盘读写控制源程序ch376芯片_第3页
第3页 / 共71页
u盘读写控制源程序ch376芯片_第4页
第4页 / 共71页
u盘读写控制源程序ch376芯片_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《u盘读写控制源程序ch376芯片》由会员分享,可在线阅读,更多相关《u盘读写控制源程序ch376芯片(71页珍藏版)》请在金锄头文库上搜索。

1、CH376IHC.HC or C+ include.-39 OHAL HC or Ct+ includt.2 KIrm_sifs.cC gourde file 3S ODEEUG.HC o(r C+ i 1 KBCH37&HTT. C C sourct f 8 KBCD source fHUETTS. HC or C4+ include.7 KBDEBUG. CC wcrurue filt1 KBSFI_5W. CCf丄 14 O主要包含4个C文件和和三个头文件CH376INC.H 与 CH376HFT.C为 u 盘主文件SPI_SW.C为对硬件操作文件 单片机与SPI接口FILE_SYS.与

2、 FILE_SYS.(为 ch376 接口函数分别列出CH376INC.H文 件:/* C Define for CH376*/* Website: http:/*/* Email:*/* Author:W.ch 2008.10*/* V1.0 for CH376*/#ifndef _CH376INC_H_#define _CH376INC_H #ifdef _cplusplus extern C #en dif/* * /*常用类型和常量定义*/#ifndef#defi ne#defi neTRUETRUE 1FALSE 0#endif#ifndefNULL#defineNULL 0#end

3、if#ifndef UINT8typedef unsigned char#endif#ifndef UINT16typedef unsigned short#endif#ifndef UINT32typedef unsigned long#endif#ifndef PUINT8typedef unsigned char#endif#ifndef PUINT16typedef unsigned short#endif#ifndef PUINT32typedef unsigned long#endif#ifndef UINT8Vtypedef unsigned char volatile#endi

4、f#ifndef PUINT8Vtypedef unsigned char volatile#endifUINT8;UINT16;UINT32;*PUINT8;*PUINT16;*PUINT32;UINT8V;*PUINT8V;/* */* 硬件特性 */#define CH376_DAT_BLOCK_LE0Nx40 /* USB 单个数据包 , 数据块的最大长度 , 默认 缓冲区的长度 */ /* */* 命令代码 */*部分命令兼容CH375芯片,但是输入数据或者输出数据的可能局部不同)*/* 一个命令操作顺序包含 :一个命令码 (对于串口方式 ,命令码之前还需要两个同步码 ), 若干个输

5、入数据 (可以是 0 个),产生中断通知 或者 若干个输出数据 (可以是 0 个 ), 二选一 , 有中断通知则一定 没有输出数据 , 有输出数据则一定不产生中断仅CMD01_WR_REQ_DATA命令例外,顺序包含:一个命令码,一个输出数据,若干个 输入数据命令码起名规则 : CMDxy_NAME其中的 x 和 y 都是数字 , x 说明最少输入数据个数 (字节数 ), y 说明最少输出数据个数 (字节数),y如果是H则说明产生中断通知,有些命令能够实现 0 到多个字节的数据块读写 , 数据块本身的字节数未包含在上述x或y之内*/*本文件默认会同时提供与CH375芯片命令码兼容的命令码格式(

6、即去掉 x和y之后),如果不需要,那么可以定义_NO_CH375_COMPATIBLE禁止*/*/* 主要命令 (手册一 ), 常用 */#define CMD01_GET_IC_VER 0x01/* 获取芯片及固件版本 */* 输出 : 版本号 ( 位 7 为 0, 位 6 为 1, 位 5位 0 为版本号 ) */*CH376返回版本号的值为 041H即版本号为01H */#define CMD21_SET_BAUDRATE 0x02/* 串口方式 : 设置串口通讯波特率 (上电或者复位后的默认波特率为 9600bps,由D4/D5/D6引脚选择)*/* 输入 : 波特率分频系数 , 波特

7、率分频常数 */*输出:操作状态(CMD_RET_SUCCES或 CMD_RET_ABORT其它值说明操作未完成)*/#define CMD00_ENTER_SLEEP0x03#define CMD00_RESET_ALL 0x05#define CMD11_CHECK_EXIST 0x06/* 输入 : 任意数据 */* 输出 : 输入数据的按位取反 */#define CMD20_CHK_SUSPEND0x0B方式 */* 进入睡眠状态 */* 执行硬件复位 */* 测试通讯接口和工作状态 */* 设备方式 : 设置检查 USB 总线挂起状态的/* 输入: 数据 10H, 检查方式 */*

8、00H=不检查USB挂起,04H=以50mS为间隔检查 USB挂起,05H=以10mS为间/* SPI接口方式:设置SPI的SDO引脚的中断隔检查USB挂起*/#define CMD20_SET_SDO_INT 0x0B方式 */* 输入 : 数据 16H, 中断方式 */*10H=禁止SDO引脚用于中断输出,在SCS片选无效时三态输出禁止,90H=SDO引脚在SCS片选无效时兼做中断请求输出*/#define CMD14_GET_FILE_SIZE0x0C/* 主机文件模式 : 获取当前文件长度 */* 输入: 数据 68H */* 输出 : 当前文件长度 (总长度 32 位,低字节在前 )

9、 */#define CMD50_SET_FILE_SIZE0x0D/* 主机文件模式 : 设置当前文件长度 */* 输入: 数据 68H, 当前文件长度 (总长度 32 位,低字节在前 ) */#define CMD11_SET_USB_MODE 0x15/* 设置 USB工作模式 */* 输入 : 模式代码 */*00H=未启用的设备方式,01H=已启用的设备方式并且使用外部固件模式(串口不支持),02H=已启用的设备方式并且使用内置固件模式*/*03H=SD卡主机模式/未启用的主机模式,用于管理和存取 SD卡中的文件*/*04H=未启用的主机方式,05H=已启用的主机方式,06H=已启用

10、的主机方式并且自动产生SOF包,07H=已启用的主机方式并且复位USB总线*/*输出:操作状态(CMD_RET_SUCCES或 CMD_RET_ABORT其它值说明操作未完成)*/#define CMD01_GET_STATUS 0x22/* 输出 : 中断状态 */#define CMD00_UNLOCK_USB 0x23#define CMD01_RD_USB_DATA0x27 点的接收缓冲区读取数据块 */* 输出 : 长度 , 数据流 */#define CMD01_RD_USB_DATA0x28读取数据块 , 并释放缓冲区 , 相当于 CMD01/* 输出 : 长度 , 数据流 */

11、#define CMD10_WR_USB_DATA7 0x2B区写入数据块 */* 输入 : 长度, 数据流 */#define CMD10_WR_HOST_DATA 0x2C 据块 */* 输入 : 长度, 数据流 */#define CMD01_WR_REQ_DATA 0x2D*/* 输出 : 长度 */* 获取中断状态并取消中断请求 */*设备方式:释放当前USB缓冲区*/*从当前USB中断的端点缓冲区或者主机端/*设备方式:从当前USB中断的端点缓冲区RD_USB_DATA0 + CMD00_UNLOCK_USB */*设备方式:向USB端点2的发送缓冲/*向USB主机端点的发送缓冲区

12、写入数/* 向内部指定缓冲区写入请求的数据块/* 输入 : 数据流 */ #define CMD20_WR_OFS_DATA0x2E /* 向内部缓冲区指定偏移地址写入数据块*/* 输入: 偏移, 长度, 数据流 */#define CMD10_SET_FILE_NAME 0x2F /* 主机文件模式 : 设置将要操作的文件 的文件名 */* 输入: 以 0结束的字符串 (含结束符 0在内长度不超过 14个字符 ) */* */* 主要命令 (手册一 ), 常用 , 以下命令总是在操作结束时产生中断通知 , 并且总是没有输出 数据 */#define CMD0H_DISK_CONNEC0Tx3

13、0 否连接 */* 输出中断 */#define CMD0H_DISK_MOUNT 0x31 否就绪 */* 输出中断 */#define CMD0H_FILE_OPEN 0x32 件夹 ),或者枚举文件和目录 (文件夹 ) */ /* 输出中断 */#define CMD0H_FILE_ENUM_GO 0x33 (文件夹 ) */* 输出中断 */#define CMD0H_FILE_CREATE 0x34 在那么先删除 */* 输出中断 */#define CMD0H_FILE_ERASE 0x35 直接删除 ,否则对于文件会先打开再删除 /* 输出中断 */#define CMD1H_FILE_CLOSE 0x36 或者

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号