下载此文档

2021年USB通信协议源代码.doc


文档分类:IT计算机 | 页数:约32页 举报非法文档有奖
1/32
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/32 下载此文档
文档列表 文档介绍
做了一段时间USB方面开发,即使是现成方案,我们只需要搞清楚它架构,再添加我们代码就行了。空闲之余,研究了一下USB通信过程,也把82A851R部分汇编代码重新用C语言描述了一篇(仅是描述,不代表能真正运行)。发觉汇编代码条理性太在太差了,不好读。一把C语言代码一写,立即认为清楚很多。废话少说,开始贴图,贴代码。================下面是将部分函数重新用C语言描述了一遍============#defineBYTEunsignedchar//**************************************************//            基础定义函数//**************************************************BYTEFIFO_RD_CHECK(BYTEnum){   BYTEFIFO_FLAG=0;   UCC|=num;//选择Endpoint,0,1,2,3,4,   MISC&=0xf8;//低3位置0   MISC|=0X00;//TX位置0;   Delay_3us();   MISC|=0X01;//SetRequest   Delay_28us();   if(MISC&0X40!=0)   FIFO_FLAG=0x0f;//READY   if(MISC&0x80!=0)   FIF0_FLAG&=0xf0;//Len0Detected   MISC&=0xfe;//clearREQ   returnFIFO_FLAG;}BYTEFIFO_WR_CHECK(BYTEnum){   BYTEFIFO_FLAG=0;//后4位表示Ready位,前四位表示Len0位状态是否有被设置   UCC|=num;//选择Endpoint,0,1,2,3,4,   MISC&=0xf8;//低3位置0   MISC|=0X02;//TX位置0;   Delay_3us();   MISC|=0X01;//SetRequest   Delay_28us();   if(MISC&0X40!=0)   FIFO_FLAG=0x0f;//READY   if(MISC&0x80!=0)   FIF0_FLAG&=0xf0;//Len0Detected   MISC&=0xfe;//clearREQ   returnFIFO_FLAG;}voidRead_FIFO(BYTE*Fifo_Addr,BYTEFifo_Size,BYTE*buffer){   inti=0;   MISC|=0x01;//SetRequest   for(i=0;i<Fifo_Size;i++)   {      buffer[i]=Fifo_Addr[0];//从FIFO地址取值      Delay_28us();      if(MISC&0x40==0)   break;//NotReady   }   MISC^=0X02;//改变TX位状态   Delay_3us();   MISC&=0XFE;//ClearRequest}voidWrite_FIFO(BYTE*Fifo_Addr,BYTESendLenth,BYTE*buffer){   inti=0;   MISC|=0X01;//SetRequest   for(i=0;i<SendLenth;i++)   {      Fifo_Addr[0]=buffer[i];//将要发送数据放至对应Fifo中      Delay_28us();      if(MISC&0x40==0)   break;//NotReady   }   MISC^=0X02;//改变TX位状态   Delay_3us();   MISC&=0XFE;//ClearRequest}BOOLCheck_Real_Cmd(){   BYTEbFlag_Real_Cmd=FALSE;   if(MISC&0X20!=0)   bFlag_Real_Cmd=TRUE;   if(MISC&0X80!=0)   bFlag_Real_Cmd=TRUE;   returnbFlag_Real_Cmd;}voidSend_hand(){   BOOLIsRealCmd,Status_Flag;   while(1)   {      IsRealCmd=Check_Real_Cmd();      if(IsRealCmd==TRUE)         return;      else            {         Status_Flag=FIFO_WR_CHECK(0);         if(Status_Flag&0x0

2021年USB通信协议源代码 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数32
  • 收藏数0 收藏
  • 顶次数0
  • 上传人读书之乐
  • 文件大小93 KB
  • 时间2020-11-04