端口2不是有64個字節(jié)的緩存的嘛 但MCU向375寫入數(shù)據(jù)是8位也就是1個字節(jié)一寫的 那375是攢夠了64個以后再發(fā)送的呢,還是其他的方式 那如果一次要發(fā)送的數(shù)據(jù)不足64個的話,那它會如何處理
375作為設(shè)備方式的話,單片機向375中寫入要發(fā)送的數(shù)據(jù)(先寫長度,數(shù)據(jù)塊長度的有效值是0 至64,再寫后面的數(shù)據(jù)),然后375被動的等待主機來取數(shù)據(jù),取走后,375首先鎖定當前USB 緩沖區(qū),然后將INT#引腳設(shè)置為低電平,向單片機請求中斷;單片機通過GET_STATUS來查看是否“上傳成功”,如果需要的話,可以再向375寫入數(shù)據(jù)。
我們所說的64字節(jié)的緩存一次發(fā)64字節(jié),指的是在你發(fā)送數(shù)據(jù)的長度超過64字節(jié)的時候才必須前面的發(fā)64字節(jié),當你一次發(fā)送的數(shù)據(jù)長度沒有64字節(jié)的話,那么你可以一次將不足64字節(jié)的數(shù)據(jù)發(fā)出去就可以了,發(fā)送方式就是先寫你要發(fā)送的數(shù)據(jù)長度,在將數(shù)據(jù)寫到375就可以了
如果我要使一次性寫入大于64字節(jié)長度的數(shù)據(jù)就會放生溢出? 也就是我一次性最多只能發(fā)送64個數(shù)據(jù)?
不是說了先向375寫入要發(fā)送的數(shù)據(jù)長度時,長度只能在0--64。也就是單片機執(zhí)行一次WR_USB_DATA 命令,最多只能發(fā)送64個數(shù)據(jù),你想發(fā)送大于64字節(jié)的數(shù)據(jù)的話,你可以循環(huán)多次發(fā)送啊。