計算機(jī)對ch372數(shù)據(jù)讀取

在用WR_USB_DATA7命令向ch372寫數(shù)據(jù)時,數(shù)據(jù)塊長度的有效值是0至64,如果長度不為0,則單片機(jī)必須將后續(xù)數(shù)據(jù)逐個寫入CH372。但當(dāng)用計算機(jī)讀取ch372上的數(shù)據(jù)時, CH372被動地等待USB主機(jī)在需要時取走數(shù)據(jù);當(dāng)計算機(jī)執(zhí)行讀取數(shù)據(jù)函數(shù)時,如果單片機(jī)正在向ch372寫數(shù)據(jù)時,是等數(shù)據(jù)達(dá)到數(shù)據(jù)塊長度再讀取,還是可以立即讀?。?/p>

在USB主機(jī)讀取數(shù)據(jù)時,只要372上傳端點(diǎn)內(nèi)有數(shù)據(jù),就會取走,即使不滿64. 流程是這樣: 上位機(jī)先設(shè)定讀長度,然后主機(jī)去讀372的數(shù)據(jù), 1.如果沒有數(shù)據(jù),主機(jī)會不停去要,直到超時退出; 2.如果372有數(shù)據(jù),會立即取走; 2.如果中途收到未滿64字節(jié)的包,即使沒讀到讀長度指定的數(shù)據(jù),讀函數(shù)會退出;


有什么辦法可以保證每次MCU向372把數(shù)據(jù)寫完了,PC機(jī)才取數(shù)據(jù)。


ls的回復(fù)中“2.如果中途收到未滿64字節(jié)的包,即使沒讀到讀長度指定的數(shù)據(jù),讀函數(shù)會退出;” 的意思是先設(shè)定的讀長度為64,但收到的包的長度未滿64字節(jié),即使讀到的數(shù)據(jù)長度沒有64字節(jié),讀函數(shù)也會退出嗎?


ls回復(fù)中“如果372有數(shù)據(jù),會立即取走;”此時CH375ReadData函數(shù)的返回值是什么? 如果立即取走,那么返回值豈不是總在變化?


主機(jī)取走不意味著CH375READDATA函數(shù)會立即返回; 如果函數(shù)返回時,會是讀取到指定長度的數(shù)據(jù),或者超時時間已到,或者是遇到一個小于64字節(jié)的包時函數(shù)會返回,長度值會是在函數(shù)返回時已收到的數(shù)據(jù)長度,返回值會是TRUE.


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

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