我用CH375V能正常读写U盘,当接读卡器时能读出描述符但进行mInitDisk( ); SD卡初始化失败,即发CH375_WR_CMD_PORT( CMD_DISK_INIT );后就得不到中断,可能没有初始化SD卡成功,我做过单独SD卡的读写,知道SD初始化不简单,就想知道CMD_DISK_INIT是怎样运行的,应怎样做调整,谢谢
你用下面的初始化代码试试,建议你使用子程序库操作,库的兼容性更高 unsigned char mInitDisk( ) { unsigned char mIntStatus; CH375_WR_CMD_PORT( CMD_GET_STATUS ); /* 产生操作完成中断, 获取中断状态 */ mIntStatus = CH375_RD_DAT_PORT( ); if ( mIntStatus == USB_INT_DISCONNECT ) return( mIntStatus ); /* USB设备断开 */ CH375_WR_CMD_PORT( CMD_DISK_INIT ); /* 初始化USB存储器 */ mIntStatus = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( mIntStatus != USB_INT_SUCCESS ) return( mIntStatus ); /* 出现错误 */ CH375_WR_CMD_PORT( CMD_DISK_SIZE ); /* 获取USB存储器的容量 */ mIntStatus = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( mIntStatus != USB_INT_SUCCESS ) { /* 出错重试 */ mDelay100mS( ); CH375_WR_CMD_PORT( CMD_DISK_SIZE ); /* 获取USB存储器的容量 */ mIntStatus = mWaitInterrupt( ); /* 等待中断并获取状态 */ } if ( mIntStatus != USB_INT_SUCCESS ) return( mIntStatus ); /* 出现错误 */ /* 可以由CMD_RD_USB_DATA命令将容量数据读出 */ return( 0 ); /* U盘已经成功初始化 */ }
哈哈,我用的就是这上初始化代码,现在能跑了,还是因为CH375V是3.3V电压不够的原因,现在接了5V什么都解决了,在另一帖中受到SCM的启发豁然开朗呀,下面的开发也顺手而来了,谢谢 强烈建议你们老板给SCM加薪,能者多得