CH372外置固件模式在初始化完成后,即01H写入,正确返回代码51H后,进入的第一个中断应该是哪个中断?谢谢!
按照正常的话,计算机应该会发复位的命令给你,也就是你读取到的中断状态可能是0X03,0X07,0X0B,0X0F之中的一个中断状态(也就是总线复位),在这些中断状态之后的话,你应该会收到SETUP的中断状态。
对,第一次收到0FH,后来收到都是07H,这个我在中断程序里面该怎么处理?那些描述符什么时候传上去?
在你收到总线复位的中断状态的话,你可以直接解琐缓冲区,然后等待SETUP包,计算机在发了几次总线复位的命令之后,一定会发送SETUP包的命令请求。
第一次中断确实是07H,可是第二次得到的中断状态确实08H,是Ep0_In中断,而不是setup中断,这是怎么回事?
不知道你的程序是怎么处理的,3楼说的对,先收到总线复位的命令,然后会收到SETUP包,然后就开始获取描述符,其实我们有这例子程序的,建议你参考一下,你也可以将你的程序发到我们的技术支持信箱,我们的工程师会在第一时间给你答复!
好的,程序已发到技术支持,麻烦给看一下。谢谢了。我确实调了好久了,没招了!
请问 你的程序问题解决了么?我现在也在弄外部固件模式,但我的问题是在PC发送了要设备描述符后,我用端点0上传描述符,总共18个字节,可是只传了16个字节,最后俩字节没传,就是第3次没进入上传描述符的程序中,却进了USB_INT_EP0_OUT的中断状态,也不知道是哪有问题,也调试了好几天拉。能帮我一下么?谢谢
如果Setup包中指定的长度就是16个,那么下位机上传16字节,PC下传一个0长度的数据包,产生USB_INT_EP0_OUT是正常的,PC过一会重新获取18字节的描述符
当我接到PC要描述符的命令时,我不是就得上传18个字节的描述符给PC么?但是只传了16个。
实际的长度需要根据Setup包中指定的长度来决定,PC要多少设备就给多少,不能多给也不能少给
那PC要描述符要过2次吧?第1次只给了PC八个,第2次才全部给他对么?
第一次给8个是因为端点0的大小只有8个,送了一次后PC不再取剩余的了.准确的说PC第一次只取一次.因为PC只要获取到第8个字节就可以了.PC需要知道设备端点0的大小.