我用CH372和PC機(jī)通信,PC下傳數(shù)據(jù)正常,但MCU上傳數(shù)據(jù)時(shí),用中斷端點(diǎn)上傳,發(fā)一次上位機(jī)就無法接收,如果,WHILE(1)持續(xù)發(fā)(沒用標(biāo)志位控制),就能收到,為什么呢?急啊~~各位發(fā)表高見啊!
你應(yīng)該在中斷里面發(fā)送數(shù)據(jù),而不是在主程序中不斷的發(fā),實(shí)際過程是上位機(jī)發(fā)了個(gè)從設(shè)備獲取中斷端點(diǎn)的令牌包,然后375產(chǎn)生中斷,這時(shí)候單片機(jī)在中斷程序里面分析是什么中斷,如果是中斷端點(diǎn)上傳的話,那就將你要上傳的數(shù)據(jù)發(fā)送給375就可以實(shí)現(xiàn)上傳的了.你先用我們TEST程序試下看可以不可以
他們給的那個(gè)程序好象不是吧,中斷里面的程序沒有什么上傳啊,只是中斷端點(diǎn)上傳成功之后(中斷上傳的數(shù)據(jù)被PC成功取走),進(jìn)入中斷把相應(yīng)的標(biāo)志位清除.要是進(jìn)中斷分析是上傳的話,那么按你的意思下位機(jī)怎么主動給PC傳數(shù)呢?請指教
你首先給375通過中斷端點(diǎn)寫數(shù)據(jù)到375,這樣,你就在那邊等待,當(dāng)有中斷產(chǎn)生之后,分析是中斷上傳的話,就將375解鎖()USB-UNLOCK)接著你在通過中斷端點(diǎn)在寫數(shù)據(jù)到375,如此循環(huán)就可以上傳了
對啊,就象你所說的,我先給375通過中斷端點(diǎn)寫數(shù)據(jù),然后等待,因?yàn)樯衔粰C(jī)接收數(shù)據(jù)根本接不到啊,那單片機(jī)怎么能進(jìn)中斷呢,又如何判斷呢?也就是說在給上位機(jī)發(fā)數(shù)據(jù)的第一次上位機(jī)就無法接收,解決這個(gè)問題是關(guān)鍵.
你只要通過中斷端點(diǎn)將數(shù)據(jù)寫到375,就可以了,這是下位機(jī)做的,如果收不到的話,那就是你的上位機(jī)有問題了啊
有什么問題啊,測試都是你們的例程.總之非應(yīng)答方式就是有點(diǎn)問題.
我們提供的測試?yán)淘创a在網(wǎng)上都有,這些測試程序主要是提供一些操作方法,操作流程都是正確的.可以用這些測試程序來檢查問題.debugch372是一個(gè)上位機(jī)程序,你可以用他來檢查你下位機(jī)的通訊問題.