SSPrintf( "Wait Udisk\n" ); while ( CH375DiskStatus != DISK_CONNECT ) xQueryInterrupt( ); mDelaymS( 200 ); for ( i = 0; i < 10; i ++ ) { // 有的U盘总是返回未准备好,不过可以被忽略 mDelaymS( 100 ); SSPrintf( "Ready ?\n" ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break; // 查询磁盘是否准备好 } 插入U盘后,我会死在for循环里,然后一直查询中断状态。如果去掉这个for循环,后面的create文件命令等都出错。咋回事?请赐教!
如果这个函数不通过的话,那么,后面的操作大部分U盘会出错的,你先去检查下你的USB口供电足不足5V,其次就是你的中断线有没有连接好,USB的2根线有没有接反,USB口有没有串接电阻等等,都可能导致你的DISK-READY过不了。
我用的是3.3v的。中断线肯定是连接好了,不然while ( CH375DiskStatus != DISK_CONNECT ) xQueryInterrupt( ); 就过不了。
如果是3。3V供电的话,那么,你给U盘供电的电压一定要是5V,否则U盘不工作,也就是你可以将你的USB口的电源单独的供5V电源就可以了。
USB口是5V供电。最后程序一直进入xQueryInterrupt( ),查询。
最新情况:插入U盘没有反应。上电后26为高电平,25低
芯片工作不正常,要么复位有问题,要么晶振没起振
用示波器查13,14脚均有信号。 我把原理图发出来。
我也有同样的问题,是你的延时太短,我的问题解决了
关键现在是ch375不工作了,上电后26为高电平,25低。插入U盘没有反应,这个怎么办?高人出来解答啊。
按照你上面说的,25脚为高,26脚为低的话,说明芯片正常工作,接下来你就需要做测试命令,可以按照下面的程序来进行操作: CH375_WR_CMD_PORT(0X06); CH375_WR_DAT_PORT(0X55); i=CH375_RD_DAT_PORT(); if(i==0xaa)OK else WRONG
上电后26为高电平,25低。插入U盘没有反应,