- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【实例94】读写U盘#includereg51.h
#define uchar unsigned char
uchar volatile xdata CH372_CMD_PORT _at_ 0x7DFF; // CH372命令端口的I/O地址
uchar volatile xdata CH372_DAT_PORT _at_ 0x7CFE; //CH372数据端口的I/O地址
uchar Usb_Length; //USB数据缓冲区中数据的长度
uchar Usb_Buffer[ CH372_MAX_DATA_LEN ]; // USB数据缓冲区
#define CH372_MAX_DATA_LEN 0x40 //最大数据包的长度,内部缓冲区的长度
//命令代码
#define CMD_RESET_ALL 0x05 //执行硬件复位
#define CMD_CHECK_EXIST 0x06 //测试工作状态
#define CMD_SET_USB_ID 0x12 // 设置USB厂商VID和产品PID
#define CMD_SET_USB_ADDR 0x13 //设置USB地址
#define CMD_SET_USB_MODE 0x15 //设置USB工作模式
#define CMD_SET_ENDP2 0x18 //设置USB端点0的接收器
#define CMD_SET_ENDP3 0x19 //设置USB端点0的发送器
#define CMD_SET_ENDP4 0x1A //设置USB端点1的接收器
#define CMD_SET_ENDP5 0x1B //设置USB端点1的发送器
#define CMD_SET_ENDP6 0x1C //设置USB端点2/主机端点的接收器
#define CMD_SET_ENDP7 0x1D //设置USB端点2/主机端点的发送器
//命令CMD_SET_ENDP2~CMD_SET_ENDP7输入为:工作方式,位7为1则位6为同步触发位,否则同步触发位不变,位3~位0为事务响应方:
0000~1000-就绪ACK,1101-忽略,1110-正忙NAK,1111-错误STALL
#define CMD_GET_TOGGLE 0x0A //获取OUT事务的同步状态,输入:数据1AH,
输出:同步状态
#define CMD_GET_STATUS 0x22 // 获取中断状态并取消中断请求
#define CMD_UNLOCK_USB 0x23 //释放当前USB缓冲区
#define CMD_RD_USB_DATA 0x28 //从当前USB中断的端点缓冲区读取数据块,并
释放缓冲区
#define CMD_WR_USB_DATA3 0x29 //向USB端点0的发送缓冲区写入数据块
#define CMD_WR_USB_DATA5 0x2A //向USB端点1的发送缓冲区写入数据块
#define CMD_WR_USB_DATA7 0x2B // 向USB端点2的发送缓冲区写入数据块
//操作状态
#define CMD_RET_SUCCESS 0x51 //命令操作成功
#define CMD_RET_ABORT 0x5F //命令操作失败
(2)基本操作函数
①函数DelayMs:在CH372读写过程中需要用到毫秒延时,该函数可以满足要求,程序代码如下。
void DelayMs(uchar n)
{
uchar i;
unsigned int j;
for(i=0; in; i++)
for(j=0;j1000;j++)
j=j;
}
②函数Delayμs:在读写命令的过程中经常要用到微秒的延时,该函数可以用来调用,其程序代码如下。
void Delay( uchar i)
{
while(i)
i -- ;
}
③函数WR_CH372_CMD_PORT
该函数用以向CH372命令端口写命令数据,周期不小于4μS,如果太快则延时,其程序代码如下。
void WR_CH372_CMD_PORT( uchar cmd )
{
Delay(2);
CH372_CMD_PORT=cmd;
Delay (2);
//至少延时2μS
}
④WR_CH372_DAT_PORT
该函数用以向CH372数据端口写数据,周期不小于1.5μS,如果太快则延时,其程序代码如下。
void WR_CH372_DAT_PORT(uchar d )
{
CH372_DAT_PORT=
您可能关注的文档
- 车工(数控)中级理论知识试卷.doc
- 地球一小时策划(工大).doc
- 分养系列营运政策(新).doc
- 高届一轮总复习阶段检测必修.doc
- 科士达UPSHipower系列详细技术规格.doc
- 级上册美术教案osoftWord文档.doc
- 广州市小学体育现状调查表[].doc
- 浅谈汽车S店在的发展趋势.doc
- 嵌入式系统中NandFlash的原理及应用.doc
- 人民银行专业笔试.doc
- 2025年金肯职业技术学院单招职业适应性测试题库带答案.docx
- 2025年钦州幼儿师范高等专科学校单招综合素质考试题库完美版.docx
- 2025年钟山职业技术学院单招职业适应性考试题库参考答案.docx
- 2025年金华职业技术学院单招职业技能测试题库附答案.docx
- 2025年闽南理工学院单招职业技能测试题库审定版.docx
- 2025年闽南理工学院单招综合素质考试题库审定版.docx
- 2025年闽南理工学院单招职业倾向性考试题库汇编.docx
- 2025年闽南理工学院单招职业倾向性考试题库推荐.docx
- 2025年闽北职业技术学院单招综合素质考试题库1套.docx
- 2025年长沙轨道交通职业学院单招职业技能考试题库一套.docx
最近下载
- 2024山东职业学院招聘笔试真题及答案详解一套.docx VIP
- 人教版2025四年级上册英语unit1 Unit 1 Helping at home A Let’s talk 课件.pptx
- 软件六性分析报告.docx
- 党委书记巡察整改专题生活会个人对照检查材料.docx VIP
- 市政调蓄池施工组织设计要点.doc
- csc-306gz数字式发电机转子接地保护装置说明书0sf.450.v1.pdf VIP
- 2016款一汽丰田荣放RAV4_汽车使用手册用户操作图解驾驶车主车辆说明书电子版.pdf
- 小儿遗传性疾病.ppt
- 第三课 卖辣椒的女孩儿.pptx VIP
- F420002【复试】2024年青海师范大学077501计算机系统结构《复试数据结构和操作系统之计算.pdf VIP
文档评论(0)