这几天一直在调试CH375B的外置固件模式程序,内置固件模式已经调试好了(说明硬件没有问题)。
外置固件模式程序调试中发现,在0地址状态时发送了设备描述符的前8个字节给PC,按USB协议规定,之后PC会发一个新的工作地址给USB设备,即应该进入USB_INT_EP0_SETUP中断状态下的DEF_USB_SET_ADDRESS,但是调试中发现是进入了USB_INT_EP0_IN,之后就再没有中断了,请问在此时USB_INT_EP0_IN中断应该处理些什么呢? case USB_INT_EP0_IN: if(mVarSetupRequest==DEF_USB_GET_DESCR){ //描述符上传 mCh375DesUp(); mCh375Ep0Up(); } else if(mVarSetupRequest==DEF_USB_SET_ADDRESS){ //设置地址 CH375_WR_CMD_PORT(CMD_SET_USB_ADDR); CH375_WR_DAT_PORT(VarUsbAddress); //设置USB地址,设置下次事务的USB地址 } CH375_WR_CMD_PORT (CMD_UNLOCK_USB); //释放缓冲区 break;
这是贵公司例程中的程序