[求助]测试函数CH375DiskQuery()时,U盘断开连接。为什么?

测试函数CH375DiskQuery()时,有时候正常可以得到U盘的正确信息。有时候(多数)一复位,再运行时却断开U盘(u盘灯灭),必须在次复位,等到U盘等亮,再运行仿真,又断开连接。就跟计算机上的安全删除U盘一样!请问这是怎么回事?

如果说复位的话,那么你应该将375重新的初始化


对阿,每次复位我都进行初始化的。返回的数据也显示正常初始化。但是,一运行到测试查询U盘那里U盘就断开了。


可以不可以看下你的程序?


初始化部分: T_U8 tmp = 0; uart0_open(115200,8,1,2);// even tmp = CH375LibInit(); PRT("CH375LibInit:%d\r\n",tmp); tmp = 0xFF; while(tmp!=ERR_SUCCESS)//U盘未连接,等待 { tmp = CH375DiskConnect(); DELAY_MS(100); } PRT("CH375DiskConnect:OK\r\n"); DELAY_MS(100); tmp = 0xFF; while(tmp!=ERR_SUCCESS)//U盘未准备好,等待 { tmp = CH375sDiskReady(); DELAY_MS(100); } PRT("CH375sDiskReady:OK\r\n"); DELAY_MS(100); tmp = CH375DiskSize(); if(tmp==ERR_SUCCESS) PRT("CH375DiskSize:OK\r\n"); else PRT("CH375DiskSize:ERR %d\r\n",tmp); PRT("Disk sector number:%d MB\r\n",(unsigned int)(mCmdParam.DiskSize.mDiskSizeSec>>11)); DELAY_MS(100); 接下来的是测试查询U盘: #if 1 tmp = CH375DiskQuery();//暂时不正常 PRT("CH375DiskQuery: mDiskSizeSec=%dMB,mTotalSector=%dMB,mFreeSector=%dMB\r\n",mCmdParam.Query.mDiskSizeSec>>11, mCmdParam.Query.mTotalSector>>11,mCmdParam.Query.mFreeSector>>11); if(mCmdParam.Query.mDiskFat==0) PRT("U-Disk FileSystem is unkown\r\n"); else if(mCmdParam.Query.mDiskFat==1) PRT("U-Disk FileSystem is FAT12\r\n"); else if(mCmdParam.Query.mDiskFat==2) PRT("U-Disk FileSystem is FAT16\r\n"); else if(mCmdParam.Query.mDiskFat==3) PRT("U-Disk FileSystem is FAT32\r\n"); #endif


你将你的U盘格式化成FAT16试下看可以不可以?


本来就是FAT16的,偶尔是正常的,可以显示U盘是FAT16的。


只有登录才能回复,可以选择微信账号登录