ch582的usb问题

在官方的例程venderdefineddev里面,void USB_DeviceInit(void)函数里把端点的RB_UEP_AUTO_TOG位使能了,不就是意味着传输完成后可以自动翻转同步触发位吗,但是为什么在void USB_DevTransProcess(void)中,有这么一句R8_UEP2_CTRL ^= RB_UEP_R_TOG;又手动翻转了一次?


您好,在处理函数中又加了手动翻转,是因为在USB总线复位时,自动翻转又覆写关闭了,而USB主机枚举过程中是有数次总线复位的。

您下图里注意不要关闭自动翻转功能,也是可以用的。

image.png


你好,请问下,我使用ch582,usb做host 给我的dev发数据,测试指令A(64字节,dev不回复),测试指令B(64字节,dev回复一条响应),当前我使用B测试的时候接受响应正常,但是如果使用A指令发送一次后再使用B指令发送就再也接收不到响应了,此时如果重新插拔usb后B指令就又可以了,请问下这种情况是不是因为接收同步翻转位 没处理好的原因,改怎么排查解决呢?


只有登录才能回复,可以选择微信账号登录