牛卧堂MCU技术交流

标题: 有关USB的问题请教 [打印本页]

作者: 与时俱进    时间: 2014-3-19 21:31
标题: 有关USB的问题请教
本帖最后由 与时俱进 于 2014-3-19 21:32 编辑

NANO100BSP包V1.00.007虚拟串口VCOM例程,NANO1XX_usb.c文件
函数voidUSB_UsbEvent(uint32_t u32INTSTS)
其中有
     elseif(u32INTSTS & USB_INTSTS_EPEVT0)
       {     
           /* Ctrl In */
              USBD->INTSTS= USB_INTSTS_EPEVT0;
              USB_CtrlInAck();   //这个是端点0出来函数对吧?
       }

但是在函数voidUSB_CtrlInAck(void)里有
       switch(gUsbCtrl.StateFlag)
       {
              /*Out ACK */
              caseFLAG_OUT_ACK:
                     gUsbCtrl.pDesc= 0;
                     gUsbCtrl.ReqLen= 0;
                     USBD->MXPLD1= 0;
                     break;
这个分支是干嘛用的?为什么操作起MXPLD1来?MXPLD1不是端点1的寄存器吗?


作者: shirley    时间: 2014-3-21 15:37
端点有端点地址,控制端点地址为0. MXPLD1是端点0的OUT 端点,这个1是内部index而已
作者: 与时俱进    时间: 2014-3-21 15:50
本帖最后由 与时俱进 于 2014-3-21 20:11 编辑
shirley 发表于 2014-3-21 15:37
端点有端点地址,控制端点地址为0. MXPLD1是端点0的OUT 端点,这个1是内部index而已 ...

SETUP包是发给端点0的吧,那么获取设备描述符的8字节数据为什么不是在端点0的EP1 SRAM Buffer,而直接到了Setup Token Buffer?
作者: shirley    时间: 2015-9-29 15:52
使得,SETUP有单独的8B Buffer




欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2