WCH沁恒单片机
直播中

符筹荣

7年用户 945经验值
私信 关注
[问答]

CH569W芯片EP0传输超过512字节数据,应该怎么操作?

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字节数据,应该怎么操作?
  

回帖(1)

刘嵘

2022-7-19 10:34:16
通过控制EP0_OUT_CALLBACK()的返回值,来直接启动下一次事务。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分