CH569W芯片EP0传输1024字节数据的问题

CH569W的EP0缓存区长度为512,现在需要传输超过1024字节的数据,在CH372Device例程中没有找到答案。

1、对于EP0 IN操作,即CH569W发送1024字节的数据到PC,没有问题。

只需要在EP0_IN_Callback函数的返回值中给出本次传输的长度,返回值为0,就停止。


2、对于EP0 OUT操作,即CH569W从PC接收1024字节的数据,就有问题,发完512字节后就停止。

extern UINT16 EP0_OUT_Callback(); 在函数说明中他的返回值是0,他的返回值有什么作用吗?

我也尝试着在 USB30_NonStandardReq 或 EP0_OUT_Callback()函数中加入

USB30_OUT_Set( endp_0, ACK, 2);  //能够接收一包

USB30_Send_ERDY( endp_0|OUT, 2); //通知主机下发一包

也没有效果,PC端程序只能发送512字节后就返回错误。


请问EP0 OUT,传输超过512字节数据,应该怎么操作?

通过控制EP0_OUT_CALLBACK()的返回值,来直接启动下一次事务。

image.png


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