[求助]

初始化 CH375LibInit( ) 成功.打印出WAIT UDISK ,插入U盘,连续5个“READY”之后,后面的都是报错:0x82 磁盘尚未连接,可能磁盘已经断开,并显示Fat=0, Total=0, Free=0。请问这是什么原因??怎样排错??谢谢!!

[Emot]22[/Emot]

CH375LibInit( )成功,检测U盘连接也是成功的话,一般不会返回0X82的,只有拔除U盘才产生这个错误码。 你检查一下,你的USB口是否有松动,还有就是测一下,插上U盘后,USB口的电压有多大。


USB口没有松动,没有插上U盘时USB口的电压是5.2V,U盘插上后电压是5.19。还有其他的原因吗?


CH375DiskReady()没有通过? 你的U盘是多大的,难道是大扇区U盘


CH375DiskReady()没错的,就是后面的/* 查询磁盘信息 */错了,打印出来的都是Fat=0, Total=0, Free=0, U盘是256的,应该不算大吧,而且我还换了几个不同的U盘试,结果都是一样的。请教下是什么原因!!


把你这段的程序发出来看一下,如果原理图能发的话最好也发出来看看,有利于全面的分析!


部分主要main函数内容: i = CH375LibInit( ); /* 初始化CH375程序库和CH375芯片,操作成功返回0 */ mStopIfError( i );

Uart_Printf( "Wait Udisk\n" ); while ( CH375DiskStatus < DISK_CONNECT ) { /* 查询CH375中断并更新中断状态,等待U盘插入 */ if ( CH375DiskConnect( ) == ERR_SUCCESS ) break; /* 有设备连接则返回成功,CH375DiskConnect同时会更新全局变量CH375DiskStatus */ mDelay( ); } GPIO_BitWrite(GPIO2,14,1); mDelay( ); for ( i = 0; i < 5; i ++ ) { mDelay( ); Uart_Printf( "Ready ?\n" ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break;// 查询磁盘是否准备好 /* 查询磁盘信息 */ Uart_Printf( "Disk\n" ); i = CH375DiskQuery( ); mStopIfError( i ); Uart_Printf( "Fat=%d, Total=%ld, Free=%ld\n", (UINT16)mCmdParam.Query.mDiskFat, mCmdParam.Query.mTotalSector, mCmdParam.Query.mFreeSector );/* 查询磁盘物理容量 */

Uart_Printf( "DiskSize\n" ); i = CH375DiskSize( ); mStopIfError( i ); Uart_Printf( "TotalSize = %d MB \n", (unsigned int)( mCmdParam.DiskSize.mDiskSizeSec >> 11 ) ); //显示为以MB为单位的容量


大部分是按照FILELIBS例子上写的,好象也觉得没有什么落下的,迷茫中。。。。 [Emot]6[/Emot]


我用你的程序做了一下测试,没有问题,也没有出现0X82的错误代码,那可能是你硬件的问题了,主要是CH375DiskReady( )没有通过. 你用的是什么单片机,硬件有原理图吗?375与单片机怎么连接的?


有原理图,请问发到哪里??


那你发到我们技术支持信箱就可以了. tech@wch.cn


请问下雨的天有QQ或者MSN之类的聊天工具吗??这样交流更方便!!我的QQ号码是530534983


呵呵,这个就不好意思了,我们公司技术交流只能通过论坛、技术支持信箱或者电话的方式,你有什么问题可以通过上面三种方式与我们联系,我们会尽快给你答复!!


邮件已经发过去了,请您查收!!谢谢!!


你用我们375的哪款芯片?375A还是375V?


用的是CH375V。


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