下面上傳的文件是我用vb編寫的數(shù)據(jù)條件下傳的應(yīng)用程序(也就是收到一次中斷上傳的數(shù)據(jù),根據(jù)數(shù)據(jù)判斷是否下傳數(shù)據(jù),,然后單片機(jī)接收數(shù)據(jù))以及單片機(jī)對(duì)應(yīng)的c程序 單片機(jī)用的是:51系列,22.1184m的晶振; 出現(xiàn)的問(wèn)題是,上傳接收批量數(shù)據(jù)沒(méi)問(wèn)題。。但是中斷上傳就存在很大的問(wèn)題。。。 也就是我通過(guò)c程序中的void write_inter()向端點(diǎn)1寫入數(shù)據(jù)后全速執(zhí)行c時(shí),vb程序根本就不會(huì)調(diào)用偽中斷函數(shù),單步執(zhí)行的時(shí)候有時(shí)能執(zhí)行調(diào)用,我已經(jīng)查找很長(zhǎng)一段時(shí)間了。。實(shí)在是不知道怎么辦了。。由于小弟現(xiàn)在是一個(gè)人在ch372的usb通信,都找不到可以一起參考的人。。。都快瘋了。都是按照evt里面的來(lái)做的?!,F(xiàn)在就是出不來(lái)。。很無(wú)賴, 還有我用的是已經(jīng)停產(chǎn)了的ch372t型號(hào)的,(最開(kāi)始不知道可以申請(qǐng)的時(shí)候自己買的) 不知道這有沒(méi)有什么影響?希望路過(guò)的各位大俠能給小弟指?jìng)€(gè)方向,要不我真的得瘋了。。
下載372DBG.ZIP:http://wch.cn/download/list.asp?id=9 測(cè)試你的下位機(jī)程序
偽中斷函數(shù)里是怎么處理的,一定要按照CH372EVT里面的方法做,在中斷服務(wù)函數(shù)里發(fā)一個(gè)消息,在消息處理里做實(shí)際操作,還有下位機(jī)在向端點(diǎn)1寫數(shù)據(jù)之后一定要等待端點(diǎn)1上傳成功的中斷才做其他事
我就單純的對(duì)端點(diǎn)1做處理啊。。。還是不行啊。。。 有時(shí)候根本收不到中斷,,,
你用CH372DBG讀端點(diǎn)1的數(shù)據(jù)能讀到嗎?下位機(jī)在向端點(diǎn)1寫數(shù)據(jù)之后一定要等待端點(diǎn)1上傳成功的中斷才做其操作
還沒(méi)試,,等會(huì)試試。。 還有個(gè)問(wèn)題啊。。。datasheet上寫的關(guān)于命令和命令之間的時(shí)間間隔是2us。。如果我的單片機(jī)執(zhí)行一條命令的時(shí)間就是2us請(qǐng)問(wèn)還要延時(shí)嗎?
在線等啊。。。
C語(yǔ)言中,如果寫命令是一個(gè)單獨(dú)的函數(shù),那么函數(shù)返回時(shí)堆棧指令就相當(dāng)于延時(shí),只要這個(gè)延時(shí)滿足要求,則不需要再增加額外的延時(shí)
知道了。。謝謝啊。
中斷數(shù)據(jù)上傳是對(duì)的。。應(yīng)該是vb程序出錯(cuò)了。。 我再查查吧。。 要是有不懂的關(guān)于vb的可以問(wèn)你嗎?