您好! 我的設(shè)計是這樣的: 我采用的是ch375的從模式來進行pc機與單片機的通訊。 我先是采用查詢的方式,處理pc機與單片機的usb通訊, 當(dāng)單片機接收到某個命令時,打開單片機中斷,換用中斷方式處理pc機與單片機的通訊 在打開中斷前,我想先清除當(dāng)前通訊產(chǎn)生的中斷,等待某一命令 請問:怎么清除中斷呢? 我試著執(zhí)行了一次UNLOCK_USB命令,可是當(dāng)中斷打開后,仍要產(chǎn)生一次發(fā)送“0”個數(shù)據(jù)的中斷!請問有其他方法嗎?
我就是想清除其他中斷的干擾,等待某個特定命令時才產(chǎn)生中斷。
首先,UNLOCK命令是不能多執(zhí)行也不能少執(zhí)行的,你如果在你下傳中斷之后在解鎖的話(也就是執(zhí)行了RD-DATA這個命令,就會出問題,因為這個命令本來就有問題),還有就是你說的清除中斷是不是進了中斷都不處理還是什么意思?USB傳輸是一種可靠性傳輸,所以不會出現(xiàn)在你用中斷方式的時候還會出現(xiàn)發(fā)送數(shù)據(jù)的中斷,這肯定是你的程序上面沒有處理好
恩,我想在打開中斷前,做些設(shè)置(因為打開前,已經(jīng)使usb中斷引腳變低,產(chǎn)生中斷的條件了),使打開中斷后,沒有中斷產(chǎn)生。 請問,怎么設(shè)置呢
這個應(yīng)該不會的,因為我們的375芯片產(chǎn)生中斷之后,你如果不發(fā)GET-STATUS命令的話,中斷腳是不會變成高電平的,會一直為低電平,你仔細檢查下你的程序,是不是在INT#腳為低電平的時候讀取了中斷狀態(tài)
哦,在我打開中斷前有很多產(chǎn)生中斷的條件,那么我想要清除的話,就要執(zhí)行很多的GET-STATUS命令了。 關(guān)于UNLOCK命令是不能多執(zhí)行也不能少執(zhí)行的,我理解這是對于處理有用的中斷而言的吧,而我的這些中斷是沒有用處的,所以我多執(zhí)行了UNLOCK命令,這樣原先的很多中斷,就變成了一個中斷了,而且數(shù)據(jù)長度是“0”,就沒有別的方法了嗎
你可以這樣做,在你需要的中斷狀態(tài)里面進行你要進行的操作,在不需要的中斷狀態(tài)的時候你可以獲取了中斷狀態(tài)之后在解鎖就可以了(或者這樣,和你需要執(zhí)行的中斷狀態(tài)不一樣的中斷狀態(tài)直接解鎖就可以了)
哦,好的,謝謝