郁悶

用372做了個USB-CAN的東西。發(fā)現一開始通訊很好,但是過一段時間通訊就中斷了,也找不到設備了,這是怎么了????就象ch372死機了

USB這邊會死機?還能不能找到設備?這可能和硬件有關系,USB外殼接地,用屏蔽線.距離不要太長.


按照你接的方法試了下,還是老樣子,單片機程序還在運行,可就是通訊中斷了,要重新上電,上位程序才能找到設備,象是372死了的樣子?。?! 如果寫unlock命令多了 或者少了 是不是會出現這種情況!


(1)一次中斷,只能用一次unlock,不能多也不能少(自帶解鎖的命令除外) (2)在通信過程中,設備斷開,很可能是設備被復位了,在模擬I/O方式下,如果時序不好,很容易產生,不知道你的硬件連接是什么樣的?


我現在懷疑是unlock命令的使用的問題,現在請問上傳和下傳數據成功后各自unlock,那么它們是互相不會影響的吧,就是說我上傳成功后寫unlock,對下傳數據是沒影響的吧!


(1)上傳和下傳是2個獨立的通道,不會有影響 (2)下傳數據時,如果用RD_USB_DATA0讀數據,則不需要解鎖


我現在分析的原因,高手們看可對, 芯片資料上說當CH372產生中斷后用GETSTAUS才能使INT#端恢復高電平, 那么現在可能是當一次上傳成功產生一次中斷后,還沒來得及GETSTAUS,上面又來數據下傳了,導致這個下降沿被忽略,沒進入中斷,就沒unlock,而上面的數據是在不停的往下來,導致372崩潰~~~


只有unlock之后,PC這邊才會傳下一個數據包


下傳成功后,INT#腳還在低電平狀態(tài)(上傳成功中斷還未取消),這種情況 就會忽略這次下傳成功中斷了吧


上傳和下傳是兩個通道,是沒關系,但是他們產生的中斷都是通過INT#腳來表示的啊,請高手指點迷津


不會的,如果中斷一直為0則下次的下傳是傳不上來的,CH372一直應答NAK,表示忙. 是沒有關系的,USB是半雙工通訊的.沒有任何問題.


哦 你是說 只有INT#恢復高了 ,才能進行下一次通信嗎?


傳輸完成之后還要釋放緩沖區(qū)


那象紅桃六說的 如果要上傳數據碰到INT#為低電平的狀態(tài)呢?會等待?


在上傳數據的時候,只要單片機把數據寫到ch372的端點緩沖區(qū),等待計算機去取數據,PC機取走之后,ch372才產生中斷通知單片機,單片機獲取中斷狀態(tài),釋放緩沖區(qū),以便下次傳輸.


計算機不會同時即取數據又發(fā)數據的,如果你上傳了數據,計算機會馬上取走數據,產生中斷,釋放緩沖區(qū),才會產生下傳的.只有這次事務完畢了才會下次事務. 上傳數據碰到INT0也是沒有問題的,你上傳數據只是把數據放到372的緩沖區(qū)內,至于什么時候取走這是由主機來決定的,計算機肯定是先下傳完數據后,才來取你的數據,所以不會有沖突. 所有的通訊都是由主機發(fā)起的.


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

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