[求助]CH372批量接收數(shù)據(jù)

請問一下, (1)CH372在用端點2批量接收完一次數(shù)據(jù)后,如果說存放數(shù)據(jù)的緩沖區(qū)已經(jīng)滿了,我應(yīng)該給CH372傳個啥東西??? (2)在PDF中說數(shù)據(jù)接收完后,用命令釋放當(dāng)前緩沖區(qū)的意思是數(shù)據(jù)成功接收,給上位機返回一個ACK握手信號么?謝謝

(1)CH372的接收緩沖區(qū)滿了但數(shù)據(jù)并沒被單片機取走及解鎖,這時PC繼續(xù)下傳的話,CH372會自動返回Nak,告訴PC正忙,這不需要應(yīng)用層處理 (2)確切地說,是通知CH372停止返回Nak,這樣PC可以繼續(xù)下傳數(shù)據(jù)


(1)按照您說的這樣,在用RD_USB_DATA命令讀取CH372緩沖區(qū)中的數(shù)據(jù)之后,CH372還是在自動向PC返回Nak,直到用CH372的解鎖命令釋放了緩沖區(qū),則CH372停止向PC返回Nak,從而進行下次的數(shù)據(jù)傳輸。 (2)我在每次讀取CH372的數(shù)據(jù)之后,都判斷存放數(shù)據(jù)的緩沖區(qū)是否滿了,如果滿了則不釋放CH372的緩沖區(qū),而直接從外部中斷中退出,在主程序中檢測緩沖區(qū)的數(shù)據(jù)是否處理完了,處理完成之后,我再釋放CH372的緩沖區(qū),如果我一直不釋放緩沖區(qū),PC端是不是有個時間限制,重試多少次后,就不再傳送數(shù)據(jù)了???


PC端有個超時機制,如果設(shè)置超時那么到時間還沒有傳成功就會退出,如果沒設(shè)置的話,就一直死等。


(1)是的,確切的說是只要執(zhí)行解鎖命令命令后,CH372就停止向PC返回Nak,數(shù)據(jù)沒取也沒關(guān)系 (2)有超時限制,超時后不再重試


如果這樣的話,這個超時限制大概多長???我的緩沖區(qū)開了5K,在通過端點2讀數(shù)據(jù)存入緩沖區(qū)的時候,我怎么才能保證數(shù)據(jù)既不丟失而處理完一部分,然后再接收一部分???按照我上邊的處理方法,檢測到緩沖區(qū)滿了,就不讀端點2的數(shù)據(jù),然后直接退出外部中斷,而在主程序中檢測緩沖區(qū)的數(shù)據(jù)處理完了再向CH372寫入釋放緩沖區(qū)的命令,程序會死掉。我不知道我這樣處理到底對不對?能不能指點一下,謝謝


(1)這個超時是由用戶根據(jù)需要通過CH375SetTimeout設(shè)定的,可以設(shè)置為不超時 (2)處理流程基本沒問題,可以做個通訊協(xié)議: <1>PC發(fā)送一包數(shù)據(jù)后,等待單片機應(yīng)答數(shù)據(jù) <2>單片機收到數(shù)據(jù),處理完畢后,給PC一個應(yīng)答數(shù)據(jù) <3>PC收到單片機應(yīng)答數(shù)據(jù)后再發(fā)送下一包數(shù)據(jù)


1.CH375WriteData緩沖區(qū)最大支持4096,不要開5K,可能后面的1K傳不下去。 2.CH375WriteData在底層驅(qū)動處理是,按64大小來傳輸?shù)模绻谌齻€參數(shù)設(shè)置的傳輸量不是64的倍數(shù),那前面都是按64大小來傳輸?shù)模詈笠粋€包就小于64;就算你最后一個包小于64,如果不給他解鎖的話,PC端也是不會發(fā)數(shù)據(jù)把CH372剩余的緩沖區(qū)添滿。 3.只有解鎖了,PC才會發(fā)下一包。按照提供的流程做就可以了,不需要判斷滿不滿的問題。


我現(xiàn)在是這樣來接收上位機發(fā)來的數(shù)據(jù):在單片機這端有一個外部RAM用保存從CH372讀來的數(shù)據(jù),外部RAM開辟的緩沖區(qū)為5K個單元?,F(xiàn)在我在往外部RAM存數(shù)據(jù)的時候首先判斷緩沖區(qū)是否滿了,若未滿則繼續(xù)存;當(dāng)緩沖區(qū)寫入4K個字節(jié)的時候我就認(rèn)為緩沖區(qū)滿了,這時我在EP2_OUT處理時就只讀數(shù)據(jù),而不解鎖緩沖區(qū),在主程序中,前邊的數(shù)據(jù)處理完了之后再解鎖CH372的緩沖區(qū),這時PC不是就應(yīng)該繼續(xù)給372發(fā)送數(shù)據(jù)了,但是單片機這頭卻死拉,不再接收數(shù)據(jù)拉。若我不判外部RAM是否滿了,PC在不斷的給372發(fā)送數(shù)據(jù),而單片機進入中斷又再不停的接收,PC發(fā)送的數(shù)據(jù)很快,有可能外部RAM的前邊數(shù)據(jù)還沒來得及處理又被新的數(shù)據(jù)給覆蓋了,這樣不就出錯了么?


如果不解鎖的話,PC是無法發(fā)送數(shù)據(jù)了,CH372當(dāng)然也就接不到數(shù)據(jù)了.是正確的.


(1)“單片機死機”的原因分析過沒? (2)按6樓帖做個通訊協(xié)議,就不會存在“前邊數(shù)據(jù)還沒來得及處理又被新的數(shù)據(jù)給覆蓋了”這樣的情況了


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

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