USB cdc串口怎么解決丟包問(wèn)題?

int my_printf(const char *fmt, ...) {
??? va_list ap;
??? va_start(ap, fmt);
??? int i = vsnprintf(pEP2_IN_DataBuf, 64, fmt, ap);
??? va_start(ap, fmt);
??? va_end(ap);

??? while (!EP2_GetINSta());

??? DevEP2_IN_Deal(i);

??? return i;
}


我封裝了這樣一個(gè)函數(shù)用于打印,但是發(fā)現(xiàn)使用這個(gè)函數(shù)總是會(huì)丟包,應(yīng)該用什么方法解決丟包問(wèn)題?

按照我的理解,while (!EP2_GetINSta()) 會(huì)檢測(cè)發(fā)包是否完成,從而可以避免丟包,但這樣并沒(méi)有用,嗚嗚嗚。


使用的芯片是ch573


您好,如果是為了監(jiān)測(cè)當(dāng)前IN數(shù)據(jù)包是否已上傳,可以添加一個(gè)上傳完成標(biāo)志變量,見(jiàn)帖子:http://www.findthetime.net/bbs/thread-86976-1.html;如果是當(dāng)傳輸64字節(jié)整倍數(shù)的數(shù)據(jù)量時(shí)才會(huì)丟包,可能是少了0長(zhǎng)度數(shù)據(jù)包,需要在最后一包64字節(jié)滿字節(jié)包后發(fā)出。772d09d609911ccde1440b7a6e938da.png


謝謝


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频