專家您好,我在使用USB 的CDC,由于是全速設(shè)備,所以只能發(fā)送64字節(jié)到端口,因此我要分多次發(fā)送出去,但是我在分多次發(fā)送出去的時候,出現(xiàn)了錯誤。請專家指導(dǎo)。如何發(fā)送長數(shù)據(jù)?
我的函數(shù)如下
這個函數(shù) 任然只能發(fā)送64字節(jié)以下,超過64字節(jié)發(fā)送失敗,我看了下上傳函數(shù),大概是 第一次發(fā)送后時忙狀態(tài),后面幾次就直接返回 錯誤,沒有發(fā)出去。
于是 增加了 這一句 ,目的是等待忙狀態(tài)結(jié)束后再發(fā)
while(USBFS_Endp_Busy[?3]?!=0);
結(jié)果還是在這句話后面直接死機了,這下不知道該如何處理長數(shù)據(jù)發(fā)送了。
??????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); ????????} ??????}