CH32V307 的 CDC USB輸出大于64字節(jié)的數(shù)據(jù)如何處理?

專家您好,我在使用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);
????????}
??????}


您好,正常應(yīng)該不會卡死在該地方,可以檢查一下中斷中是否有對該位清零,如下圖。若方便,可將工程發(fā)我郵箱(lzs@wch.cn)具體看一下。

image.png



我知道原因了,這個函數(shù)在USB中斷中執(zhí)行,USB中斷沒法修改這個忙標記,結(jié)果卡死了,這個等待USB忙標記的函數(shù)只能在中斷外執(zhí)行,謝謝。


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

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