ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:100.50KB ,
资源ID:3535094      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3535094.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(USB通信协议.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

USB通信协议.doc

1、做了一段时间的 USB 方面的开发,虽然是现成的方案,我们只需要搞清楚它的架构,再添加我们的代码就行了。空闲之余,研究了一下 USB 通信过程,也把 82A851R 部分的汇编代码重新用 C 语言描述了一篇(仅是描述,不代表能真正运行) 。发现汇编代码条理性太在太差了,不好读。一把 C 语言的代码一写,马上觉得清楚很多。废话少说,开始贴图,贴代码。下面是将一些函数重新用 C 语言描述了一遍#define BYTE unsigned char/*/ 基本定义函数/*BYTE FIFO_RD_CHECK(BYTE num)BYTE FIFO_FLAG=0;UCC|=num;/选择 Endpoint

2、,0,1,2,3,4,MISC/低 3 位置 0MISC|=0X00;/TX 位置 0;Delay_3us();MISC|=0X01;/Set RequestDelay_28us();if(MISC/READYif(MISC/Len0 DetectedMISC/clear REQreturn FIFO_FLAG;BYTE FIFO_WR_CHECK(BYTE num)BYTE FIFO_FLAG=0;/后 4 位表示 Ready 位,前四位表示 Len0 位的状态是否有被设置UCC|=num;/选择 Endpoint,0,1,2,3,4,MISC/低 3 位置 0MISC|=0X02;/TX

3、位置 0;Delay_3us();MISC|=0X01;/Set RequestDelay_28us();if(MISC/READYif(MISC/Len0 DetectedMISC/clear REQreturn FIFO_FLAG;void Read_FIFO(BYTE *Fifo_Addr,BYTE Fifo_Size,BYTE *buffer)int i=0;MISC|=0x01;/Set Requestfor(i=0;idata_start0)/请求的数据超出 ROM 数据return;data_count=buffer6;if(MISCif(data_count=0)Send_Ha

4、nd_Shake();return; /开始真正的 control_readwhile(1)if(bFlag_RD_HTable=0)/Read Low BytebFlag_RD_HTable=1;bufferi=(BYTE )*rom_dataptr;/取其低位i+;data_count-;/全局变量,要发送的总长度if(data_count8;/取其高位rom_dataptr+;/将 ROM 指针前移if(bufferi=0x3f)continue;elsei+;if(data_count=0X81 0010 0000Bif(tempelse buffer0=0;buffer1=0;whi

5、le(1)if(Check_Real_Cmd()=TRUE) break;/估计是 Len0=1,结束会话if(FIFO_WR_CHECK(0)=FALSE) continue;Write_FIFO(Fifo_0_Addr,FIFO_SendLen,buffer);/*/ GetConfiguration(): 设置配置的函数 / /*void GetConfiguration(BYTE *buffer,BYTE USB_Configuration)BYTE FIFO_SendLen;buffer0=USB_Configuration;FIFO_SendLen=0x01;while(1)if(

6、Check_Real_Cmd()=TRUE) return;if(FIFO_WR_CHECK(0)Write_FIFO(Fifo_0_Addr,FIFO_SendLen,buffer);/*/ GetInterface(): 获取 Interface 接口的函数 / /*void GetInterface(BYTE USB_Interface_Alt,BYTE *buffer)BYTE FIFO_SendLen;buffer0=USB_Interface_Alt;FIFO_SendLen=0x01;while(1)if(Check_Real_Cmd()=TRUE) return;if(FIFO

7、_WR_CHECK(0)/Not ReadyWrite_FIFO(Fifo_0_Addr,FIFO_SendLen,buffer)/*/ SetReport(): 设置 Report 的函数 / /*BYTE SetReport(BYTE *buffer)BYTE FIFO_wValueH=buffer3;BYTE nCmdIndex1;if(FIFO_wValueH=0x02)/set_output_reportif(buffer4!=0x03)/check interfaceSTALL|=0x01;/ENPOINT0 Errorreturn;if(buffer6!=0x08)/FIFO_wLengthL,check lengthSTALL|=0x01;/ENPOINT0 Errorreturn;nCmdIndex1=0x21;return nCmdIndex1;/返回命令索引号

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。