如何判斷是否向CH375 上傳數(shù)據(jù)

我想問下,是否有數(shù)據(jù)從單片機(jī)向計算機(jī)上傳的函數(shù)是那個?

我用VB定時器觸發(fā)那個事件: If (CH375ReadData(mIndex, mDemoReq, mLength)) Then ' 通過CH375接收應(yīng)答數(shù)據(jù),成功 If (mLength = CONST_CMD_LEN) Then If ((mDemoReq.mCommandCode <> (&HFF - DEF_CMD_TEST_DATA)) Or (mDemoReq.mParameter(0) <> (&HFF - &H5A)) Or (mDemoReq.mParameter(1) <> (&HFF - &H96))) Then MsgBox "通過USB傳輸?shù)臄?shù)據(jù)有錯誤", vbExclamation, mCaptionInform End If Else MsgBox "CH375數(shù)據(jù)測試返回的長度錯誤", vbExclamation, mCaptionInform End If Else MsgBox "CH375ReadData 失敗", vbExclamation, mCaptionInform End If

如果單片機(jī)沒發(fā)送數(shù)據(jù)過來,就會出錯,有什么方法可以檢測到計算機(jī)從單片機(jī)發(fā)送到數(shù)據(jù)。


摘自說明書CH372DS1.PDF:

上傳數(shù)據(jù)流的發(fā)起方式有兩種:一種是查詢方式,指計算機(jī)應(yīng)用層定期以查詢方式發(fā)起;另一種 是偽中斷方式,指單片機(jī)以中斷數(shù)據(jù)通知計算機(jī)應(yīng)用層,再由計算機(jī)應(yīng)用層發(fā)起。因?yàn)閁SB總線是主 從式結(jié)構(gòu),只有在計算機(jī)主動聯(lián)系USB 設(shè)備時,USB 設(shè)備才能向計算機(jī)上傳數(shù)據(jù)。 上傳數(shù)據(jù)流以查詢方式發(fā)起的系統(tǒng)中,計算機(jī)應(yīng)用層總是通過數(shù)據(jù)上傳API嘗試讀取數(shù)據(jù)。當(dāng)單 片機(jī)沒有數(shù)據(jù)需要上傳時,計算機(jī)應(yīng)用層就會一直等待(如果設(shè)置USB 讀超時則會退出),實(shí)際上該 應(yīng)用層程序的線程將會被操作系統(tǒng)掛起。當(dāng)單片機(jī)需要上傳數(shù)據(jù)時,應(yīng)該將數(shù)據(jù)寫入CH372批量端點(diǎn) 的上傳緩沖區(qū)中,接著計算機(jī)應(yīng)用層自動取走數(shù)據(jù),然后CH372 芯片以中斷方式通知單片機(jī)上傳成功, 以便單片機(jī)繼續(xù)上傳后續(xù)數(shù)據(jù)。使用這種方式,建議用CH375SetBufUpload 設(shè)定內(nèi)部緩沖上傳。 上傳數(shù)據(jù)流以偽中斷方式發(fā)起的系統(tǒng)中,計算機(jī)應(yīng)用層初始化時設(shè)置一個偽中斷服務(wù)程序,然后 應(yīng)用層就不需要再涉及到上傳數(shù)據(jù)流。當(dāng)單片機(jī)需要上傳數(shù)據(jù)時,首先將數(shù)據(jù)寫入批量端點(diǎn)的上傳緩 沖區(qū)中,然后將中斷特征數(shù)據(jù)寫入中斷端點(diǎn)的上傳緩沖區(qū)中。在1 毫秒之內(nèi)(理論值),與中斷特征 數(shù)據(jù)對應(yīng)的偽中斷服務(wù)程序被激活,偽中斷服務(wù)程序通知主程序調(diào)用數(shù)據(jù)上傳API獲得上傳數(shù)據(jù)塊。 在此期間,單片機(jī)將會收到CH372 芯片通知的兩次中斷,首先是中斷端點(diǎn)上傳成功中斷,然后是批量 端點(diǎn)上傳成功中斷。

BOOL WINAPI CH375SetBufUpload( // 設(shè)定內(nèi)部緩沖上傳模式 ULONG iIndex, // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備 ULONG iEnableOrClear ); // 為0則禁止內(nèi)部緩沖上傳模式,使用直接上傳,非0則啟用內(nèi)部緩沖上傳模式并清除緩沖區(qū)中的已有數(shù)據(jù) // 如果啟用內(nèi)部緩沖上傳模式,那么CH375驅(qū)動程序創(chuàng)建線程自動接收USB上傳數(shù)據(jù)到內(nèi)部緩沖區(qū),同時清除緩沖區(qū)中的已有數(shù)據(jù),當(dāng)應(yīng)用程序調(diào)用CH375ReadData后將立即返回緩沖區(qū)中的已有數(shù)據(jù)

LONG WINAPI CH375QueryBufUpload( // 查詢內(nèi)部上傳緩沖區(qū)中的已有數(shù)據(jù)包個數(shù),成功返回數(shù)據(jù)包個數(shù),出錯返回-1 ULONG iIndex ); // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備


怎么VB的 demo 沒有這些函數(shù)的呢?


我用的是 ch375,請問有沒有這些功能。


ch375 是否有這些函數(shù)

BOOL WINAPI CH375SetBufUpload( // 設(shè)定內(nèi)部緩沖上傳模式 ULONG iIndex, // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備 ULONG iEnableOrClear ); // 為0則禁止內(nèi)部緩沖上傳模式,使用直接上傳,非0則啟用內(nèi)部緩沖上傳模式并清除緩沖區(qū)中的已有數(shù)據(jù) // 如果啟用內(nèi)部緩沖上傳模式,那么CH375驅(qū)動程序創(chuàng)建線程自動接收USB上傳數(shù)據(jù)到內(nèi)部緩沖區(qū),同時清除緩沖區(qū)中的已有數(shù)據(jù),當(dāng)應(yīng)用程序調(diào)用CH375ReadData后將立即返回緩沖區(qū)中的已有數(shù)據(jù)

LONG WINAPI CH375QueryBufUpload( // 查詢內(nèi)部上傳緩沖區(qū)中的已有數(shù)據(jù)包個數(shù),成功返回數(shù)據(jù)包個數(shù),出錯返回-1 ULONG iIndex );


Demo程序里用到這些函數(shù).你到網(wǎng)上下載CH375最新的驅(qū)動包(CH372DRV.ZIP).


我的單片機(jī)用以下:

LONG WINAPI CH375QueryBufUpload( // 查詢內(nèi)部上傳緩沖區(qū)中的已有數(shù)據(jù)包個數(shù),成功返回數(shù)據(jù)包個數(shù),出錯返回-1 ULONG iIndex );

總是返回 -1 , 是不是這個單片機(jī)設(shè)計有問題?


QueryBufUpload()是上位機(jī)的函數(shù). 使用方法: 1.首先打開設(shè)備 2.在讀寫操作之前用CH375SetBufUpload(設(shè)備號,大于0的數(shù)值)設(shè)置內(nèi)部緩沖上傳模式 3.現(xiàn)在就可以用QueryBufUpload()查詢緩沖區(qū)內(nèi)數(shù)據(jù)包的個數(shù),緩沖內(nèi)沒有數(shù)據(jù)包返回0. 4.取消緩沖上傳模式用CH375SetBufUpload(設(shè)備號,0).


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

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