wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
阅读:958回复:3

高分求助!!为什么我的usb连接不上。(怎么在芯片里设置重枚举?)

楼主#
更多 发布于:2004-08-27 16:48
(采用89c51snd芯片,)
void main (void)
{       EA=1; //开中断
InitPLL();//设置时钟;
delay(10);
//P3_4=0;
InitUSB();//初始化usb
//P3_4=1;

while(1)
{  delay(10000);
//LED=!LED;
}
}
void InterruptUSB(void) interrupt 13
{  //读取描述符等
  。。。。。。。
  。。。。。。。
}
void InitUSB(void)
{
          USBCLK=0x03;//set USB clock  192/4=48MHz

          USB_EP0_RESET; //Endpoint复位
USB_EP1_RESET;
USB_EP2_RESET;

USBADDR=0x80;
           UEPIEN=0x07;
UEPNUM=0x00; //设置Endpoint0
UEPCONX=USB_EPMOD_COLTROL; //设置控制传输
UEPNUM=0x01; //设置Endpoint1
UEPCONX=USB_EPMOD_BULK_OUT;
UEPNUM=0x02; //设置Endpoint2
UEPCONX=USB_EPMOD_BULK_IN;
UEPRST = 0x07;
UEPRST = 0x00;
USB_ENABLE_INT_EP0; //开EndPoint0中断
USB_ENABLE_INT_EP1; //开EndPoint0中断
USB_ENABLE_INT_EP2; //开EndPoint0中断
USBINT=0x00; //清除所有中断标记
USBIEN=0x39; //开全局中断
SET_BIT_6(IEN1); //开USB总中断
/*********************重枚举*************************/
USBCON=0x40; //停止USB
          delay(50000);
USBCON=0x80; //启动USB
/***********************************************/
}

 :(
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-27 21:07
各位大侠,救急啊!!!
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-29 01:16
??????救急啊
LikeDDK
驱动牛犊
驱动牛犊
  • 注册日期2001-09-30
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-29 08:39
未用过,帮你顶~~~~
游客

返回顶部