ch376偶爾不能加載U盤

插著U盤上電啟動,重復調(diào)用CH376DiskConnect函數(shù)檢測U盤,一般都能檢測到,但是大約有1%幾率會加載不到U盤,重新拔插一次U盤又可以加載。 上電以后再插U盤每次都能檢測到,只有插著U盤上電會有此問題。

加載不到U盤是因為沒檢測到中斷,中斷需要配置成低電平觸發(fā),你可以查一下中斷配置以及看一下有無中斷產(chǎn)生?


我是用軟件查詢中斷IO腳,應該是沒有查詢到中斷


你可以將INT#腳翹起,看看我們CH376芯片有沒有中斷產(chǎn)生?


我現(xiàn)在修改了程序,不用Connect,直接不停的Mount,直到Mount成功為止。這樣會不會有問題?初測貌似可以


CH376DiskMount的操作與CH376DiskConnect是類似的都是發(fā)送一個命令,然后等待中斷。正常的流程是檢測U盤連接,然后磁盤初始化,CH376DiskMount必須正確通過才能進行后面操作。


CH376DiskMount里面有而vCH376Reset,而CH376DiskConnect只是在等中斷。是不是vCH376Reset一下就能檢測到了呢?


照你這個說法,每次上電也相當于一次復位(復位延時50ms),也應該每次檢測到的。


我的軟件最開始也是發(fā)了一次復位命令。 如果按你說的中斷沒檢測到,應該不可能,為什么只有上電那一次的CH376DiskConnect中斷檢測不到,而其他時候都沒問題?


你可以看一下檢測U盤連接函數(shù): UINT8 CH376DiskConnect( void ) /* 檢查U盤是否連接,不支持SD卡 */ { if ( Query376Interrupt( ) ) CH376GetIntStatus( ); /* 檢測到中斷 */ return( CH376SendCmdWaitInt( CMD0H_DISK_CONNECT ) ); } 第一個Query376Interrupt是檢測U盤插上中斷信號的,第二次是發(fā)送連接命令會再一次產(chǎn)生中斷狀態(tài)。如果你一直插著的話是不會進入第一個判斷的。


如果按你說的的,那每次上電啟動都要重新拔插一下了?這樣很不友好啊。 要像我那樣改一下程序,不用CH376DiskConnect直接CH376DiskMount,會不會內(nèi)部就認為U盤沒有連接,而怎么Mount都不成功?


第9樓的程序插著U盤也是可以正確通過的,我只是說明一下插著U盤與不插U盤的區(qū)別。 如果U盤未連接上,CH376DiskMount不會成功的。


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

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