程序启动后,插上USB线到PC,程序跳入中断,但中断状态是0C和0F,都是总线复位的中断代码,这样正常吗?这2个中断的处理如何处理? 我认为一插上USB线到PC(CH375B复位后),应该反馈USB_INT_EP0_SETUP这个中断状态
(1)刚连接到计算机,一定会首先产生上述的复位中断 (2)复位中断产生时,程序中一般要把自身的设备地址,配置值等清0 (3)复位中断之后才会有USB_INT_EP0_SETUP中断 具体如何处理,网上下载CH372EVT.ZIP,参考..\PUB\XFIRM\C目录下的示例
if((InterruptStatus&0x03)==0x03){ //总线复位 CH375FLAGERR=0; //错误清0 CH375CONFLAG=0; //配置清0 mVarSetupLength=0; // CH375ACT=1; //清配置完成输出 }
谢谢了 不过刚才一个新问题,设置工作模式为外置固件模式后返回操作状态决然是0x08,设置为内置固件模式后发现返回是成功0x51
对设置模式命令来说,0x08是不正常的返回状态。 设置模式命令完成时间需要20Us,然后才能查询状态。不知道你设置模式后是否有20Us的延时
只要在你测试命令完成之后的话,不论设置的是内置固件还是外置固件,都不必要去读取状态的。你只需要去设置模式就可以了。
今天调试突然都正常了,也能响应USB_INT_EP0_SETUP了,谢谢各位支持