有什么想法可能会导致文件系统事件处理程序的回调有时不发生?正常情况下,它运行良好,读写文件正常,甚至捕捉到闪存删除和大多数插入。但有时它删除闪存之后会错过重新插入(中间没有重置)。在检测到闪存删除之后,在文件系统或USB MSD中有需要重置的东西吗?确保可靠的重新连接吗?我真的认为这一切工作得很好,但我只是在一些额外的测试中注意到,在移除USB闪存驱动器,然后在几秒钟后重新插入后,它并不总是重新连接。这影响了可靠性!这似乎不是硬件问题,因为复位可以立即重新连接。它似乎是间歇性的,有时是重新连接,有时是未检测到的。我想知道文件系统是否存在某些状态,其中断开连接导致H
ARMony被卡住,无法重新连接USB MSD文件。ESE系统?使用:-PIC32MZ2048EFM144、HarmonyV202b、MHC2024、MPLABXv255、XC32v143 XC32v143相对较新,但我不期望这会影响文件系统——使用Harmony的回调来检测连接(以下代码)。当我将闪存插入USB套接字时,并不总是调用回调,但是如果我重新引导,则会检测到闪存,因此物理连接看起来不错。-在初始化时,我会这么做:USB_HOST_BusEnable(0);//Firstbus-初始化后,我检查:if(USB_HOST_RESULT_SUCCESS==USB_HOST_BusIsEnabled(0))//FirstbusPaul//////FirstbusPaul///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////如果(sFiles.bFsConnected){/*Flag Connc*/} / /同时运行:检测断开连接…如果(!)sFiles.bFsConnected){{/*Flag Disconnected*/}////------------------------------回调用vCall回vCallCallbackVCallbackVCallbackVCallback_FilbackVVVCallback_FilbackFilbackFilbackVVFiles系统Event(SYS_FS_SYS_FS_FS_EEEEEEEEEEEVVVVVVCSCSCSCSystystemEveback_Filback_FilbackEveback_FilbackEve----------------VVSYSVVVVVVVVVVVVVVVVSSSSSSSSYS_VVVVVVVVVVVVVVVVVVVVVV病例SYS_FS_EVENT_UNMOUNT: sFiles.bFsConnected=false; sFiles.sLogU.bReady=false; //File未准备好进行访问中断;情况SYS_FS_EVENT_ERROR: //Never发生sFiles.uFsCallbackError+; break;默认: sFiles.eFsCallbackUn.=eEvent; //Never发生SfSuff.UnScCalbEngult+++;Burn.}////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////;