關于函數CH341SetBufUpload()

沁恒技術專家:

您好! 我請教幾個問題:

問題1: (1)CH341SetBufUpload()調用后,ch341怎樣使用緩存區(qū),緩存區(qū)是否為循環(huán)隊列,緩存區(qū)滿了會出現什么現象? (2)CH341ReadData()讀取后,再次讀取的位置在緩沖區(qū)中是從頭開始還是接著上次的位置? (3)CH341ReadData()讀取緩存區(qū)時,如剛好有數據上傳是否會丟失?

問題2: 我用單片機向微機傳送數據(每隔40ms傳送16字節(jié),共傳送1024次),微機端程序通過周期性調用CH341ReadData()讀取數據,發(fā)生數據丟失現象,只能收到1023個數據包,不知什么地方弄錯了?(不好意思可能沒說清楚,請幫大概分析一下)

問題1: 1.你設置了緩沖上傳模式,緩沖區(qū)內開了幾十K字節(jié)的緩沖.如果緩沖滿了,那么最先接受到的數據會被覆蓋. 2.讀數據會按照先后順序讀. 3.如果緩沖區(qū)沒滿,ch341readdata操作(應用層操作)與上傳(內核線程在讀)不會沖突. 問題2: 如果您每隔40ms傳送16字節(jié),共傳送1024次,我建議您開一個線程, 1.用函數: CH341QueryBufUpload( // 查詢內部上傳緩沖區(qū)中的已有數據包個數,成功返回數據包個數 去查詢內核緩沖區(qū)內包的個數,如果發(fā)現有包就去取數據. 2.如果你確認你每次設備上傳數據是16字節(jié),那我建議您每次CH341ReadData()讀數據的長度為16的倍數據. 因為我們驅動里保存上傳的數據以USB包為單位存放,但取數據又以包內的實際長度為準,所以每次取數據長度值最好以你上傳的長度,或長度的倍數.


謝謝指導。


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

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