总存储容量:(字节)0 每扇区字节:(个)0 每簇扇区:(个)0 文件列举完毕,共有文件(个):0 如上面,读u盘时候出现,我用的是stc12单片机,单片机与375通过P0口传输数据,控制信号、查询中断也是接普通io口,调试了很久先是发现中断刚开始还有,后来就不会中断了。现在可以中断,就是出现了0容量,还出现过很乱的数据,请教前辈。如果有时间还希望帮我看看代码,我的QQ2146263六9,谢谢!UploadImages/201111172304117.rar
你先测试一下读写扇区是否可以。如果可以,剩下的问题就要您自己来解决了。因为文件系统是您自己来写的。
文件系统怎么写?对于没接触过文件系统的人能给点意见吗?谢谢!
u盘的读写测试可以,但是文件系统初始化通不过????
unsigned char CH375_InitDisk() { unsigned char status,i,j=0;
status=CH375_Wait_Int(); if(status==USB_INT_DISCONNECT) return 1; /* USB设备断开 */
while(1) { CH375_Write_Cmd(CMD_DISK_INIT); /* 初始化USB存储器 */ status=CH375_Wait_Int(); /* 等待中断并获取状态 */ if(status==USB_INT_SUCCESS) break; }
while(1) //以下代码均源自沁恒的官方U盘初始化函数,借用它可以提高对U盘的兼容性! { j++; CH375_Write_Cmd(CMD_DISK_SIZE); /* 获取USB存储器的容量 */ status=CH375_Wait_Int(); /* 等待中断并获取状态 */ if(status==USB_INT_SUCCESS) break; else { delay(1000); CH375_Write_Cmd(CMD_DISK_R_SENSE); /* 获取USB存储器的容量 */ status=CH375_Wait_Int(); /* 等待中断并获取状态 */ if(status==USB_INT_SUCCESS) /* 出现错误 */ continue; else return 1; } if(j==5) return 1; } for(i=0;i!=5;i++) { CH375_Write_Cmd( CMD_DISK_READY ); /* 获取USB存储器的容量 */ status=CH375_Wait_Int(); /* 等待中断并获取状态 */ if(status==USB_INT_SUCCESS) return 0; /* U盘已经成功初始化 */ } return 1; }