我用的是CH376向U盘中写数据 看到程序里写的是检查到U盘插入后还会等待一段时间,初始化磁盘并测试磁盘是否就绪,看不懂是为什么,基本上插上U盘后是可以跳过这一段的,但是也有时候是跳不过这一段,等待500ms后就卡了,拔下U盘后,CH376 24脚的二极管一直亮着不会熄灭,按单片机的reset也没有用,这样的情况该怎么解决呢?
贴上这部分的程序: main() { s = mInitCH376Host( ); mStopIfError( s ); while(1) { .......... if( CH376DiskConnect( ) == USB_INT_SUCCESS ) //检查U盘是否连接,等待U盘插入,对于SD卡,可以由单片机直接查询SD卡座的插拔状态引脚 { Delay_ms( 20 ); for ( s = 0; s < 10; s ++ ) { /* 最长等待时间,10*50mS */ Delay_ms( 50 ); if ( CH376DiskMount( ) == USB_INT_SUCCESS ) break; /* 初始化磁盘并测试磁盘是否就绪 */ } if(s==10) { lcd_mesg(" 请重试 U盘读写出错 "); Delay_ms(100); break; } /* 如果SD_DATA.TXT文件已经存在则添加数据到尾部,如果不存在则新建文件 */ s = CH376FileOpen( "/SD_DATA.TXT" ); /* 打开文件,该文件在根目录下 */ if ( s == USB_INT_SUCCESS ) { /* 文件存在并且已经被打开,移动文件指针到尾部以便添加数据 */ s = CH376ByteLocate( 0xFFFFFFFF ); /* 移到文件的尾部 */ mStopIfError( s ); } else if ( s == ERR_MISS_FILE ) { /* 没有找到文件,必须新建文件 */ s = CH376FileCreate( NULL ); /* 新建文件并打开,如果文件已经存在则先删除后再新建,不必再提供文件名,刚才已经提供给CH376FileOpen */ mStopIfError( s ); } else mStopIfError( s ); /* 打开文件时出错 */ ........ } }