通過多方面的努力,我的CH372終于通過了Test,模式設(shè)置為內(nèi)置固件,返回51H,也通過了,同時被PC識別為外部接口。 但是我將單片機里面的數(shù)據(jù)通過CH372發(fā)送(WR_USB_DATA5命令), PC機一直沒有取走數(shù)據(jù),INT#腳一直為高電平,進(jìn)入不了中斷,沁恒工程師看看可能是什么原因?
你可以用我們的單片機端的TEST程序做一下測試,從你說的情況來看,有兩種可能:一是你下位機已經(jīng)將數(shù)據(jù)寫到CH372中了,但是PC機沒有取走,所以沒有中斷,這樣的話,就是PC機的程序有問題,二是你下位機程序沒有上傳數(shù)據(jù)成功,正確的做法是要先寫長度,后寫數(shù)據(jù). 還有一個問題是CH372只能做設(shè)備,所以它不能主動上傳數(shù)據(jù)! 那么現(xiàn)在要做的是確定是你的下位機程序的問題還是上位機程序的問題,這才是解決這個問題的關(guān)鍵所在!!
PC端不就是一個CH372的驅(qū)動,裝上就沒有別的了么?下位機程序我是先寫長度,后寫數(shù)據(jù)的。
上位機除了一個驅(qū)動之外,還需要使用我們的動態(tài)鏈接庫來讀寫下位機給你發(fā)送的數(shù)據(jù)。同時,在下位機首先上傳的話,你可以先讓上位機先通過批量端點下傳一個數(shù)據(jù)下來在進(jìn)行數(shù)據(jù)的上傳,這樣的話,才能進(jìn)行數(shù)據(jù)的傳輸。
PC機端裝CH372B的驅(qū)動那是必然的,但是驅(qū)動裝好了只能說可以進(jìn)行通信了,但是你PC機要有相應(yīng)的軟件控制才行,因為CH372只能做設(shè)備,你可以用我們PC端的調(diào)試工具CH372DGB,下位機用TEST程序就可以了!
我做的東西是模擬鍵盤上的兩個鍵,pageup和pagedown,需要即插即用。如果要裝驅(qū)動以及PC的軟件,那就麻煩了。上次我咨詢沁恒工程師的時候,他們說不用。怎么辦呢?
按你的意思就是做成HID模擬鍵盤,這樣在程序中就要配置HID描述符, 并且數(shù)據(jù)上傳的時候要以報表的形式上傳; 并且HID模擬鍵盤插入PC機后應(yīng)該識別為人體輸入學(xué)設(shè)備; 你可以參考372做模擬鍵盤例子程序: http://www.findthetime.net/bbs/View.asp?S=101&I=19463
謝謝各位工程師的指點。現(xiàn)在“USB設(shè)備CH372或CH375調(diào)試工具”已經(jīng)接收到單片機發(fā)送過去的數(shù)據(jù)了,中斷也能正常進(jìn)入。順序是這樣的:首先跑一遍單片機程序,進(jìn)不了中斷,打開調(diào)試工具,此時調(diào)試工具檢測到有CH372/CH375設(shè)備已插入。點擊端點1上傳,此時復(fù)位單片機程序,重新跑一遍,調(diào)試工具接收的數(shù)據(jù)正確的顯示出來了,單片機程序順利進(jìn)入中斷,正常返回。順序沒有錯吧? 再次謝謝各位工程師的幫助。接下來考慮模擬鍵盤的問題。