专家您好,我在使用USB 的CDC,由于是全速设备,所以只能发送64字节到端口,因此我要分多次发送出去,但是我在分多次发送出去的时候,出现了错误。请专家指导。如何发送长数据?
我的函数如下
这个函数 任然只能发送64字节以下,超过64字节发送失败,我看了下上传函数,大概是 第一次发送后时忙状态,后面几次就直接返回 错误,没有发出去。
于是 增加了 这一句 ,目的是等待忙状态结束后再发
while(USBFS_Endp_Busy[ 3] !=0);
结果还是在这句话后面直接死机了,这下不知道该如何处理长数据发送了。
void usb_puts(char * buffer) { int len=strlen(buffer); int cnt=(len/64); int last_len=len%64; for(int i=0;i<=cnt;i++) { //while(USBFS_Endp_Busy[ 3] !=0);//加上这一句直接死机, USBFS_Endp_DataUp(3,&buffer[i*64],(i==cnt)?last_len:63 ,1); } }
热门产品 :
CH394: 以太网协议栈芯片