目前的程序大部份牌子的U盘都能用,并且很稳定. 但是有些牌子的U盘在读取U盘大小时总出错,是不是在初始化U盘成功后还需要发些其它命令才能让这些U盘正常工作呢?
U盘接入后调用如下代码: BYTE CH375_InitDisk(void) { TP_DelayMS(200); //延时200ms让U盘准备好 CH375_WriteCMD(DISK_INIT); //初始化U盘 if(CH375_WaitInterrupt() != USB_INT_SUCCESS)return 0;//不成功则返回0
TP_DelayMS(400); CH375_WriteCMD(DISK_SIZE); //获取U盘大小 if(CH375_WaitInterrupt() != USB_INT_SUCCESS) { TP_DelayMS(400); CH375_WriteCMD(DISK_SIZE); if(CH375_WaitInterrupt() != USB_INT_SUCCESS) return 0;//总在这里出错!!! } return 1; //正常返回1 }[Emot]12[/Emot]