[求助]376写u盘问题

开了缓存 在中断里将24l01的数据读到缓存中 在主函数中将缓存里的数据写到U盘里 但是缓存里没东西的时候 U盘还是在写空白数据 何解?程序段如下 while(1) { while(CH376_DiskConnect()!= USB_INT_SUCCESS) { Delayms( 100 ); } Delayus(100); for ( i = 0; i < 100; i ++ ) { Delayms( 50 ); s = CH376_DiskMount( ); if ( s == USB_INT_SUCCESS ) { break; } else if ( s == ERR_DISK_DISCON ) /* 检测到断开,重新检测并计时 */ { break; } if ( CH376_GetDiskStatus( ) >= DEF_DISK_MOUNTED && i >= 5 ) /* 有的U盘总是返回未准备好,不过可以忽略,只要其建立连接MOUNTED且尝试5*50mS */ { break; } } if ( s == ERR_DISK_DISCON ) /* 检测到断开,重新检测并计时 */ { continue; } if ( CH376_GetDiskStatus( ) < DEF_DISK_MOUNTED ) /* 未知USB设备,例如USB键盘、打印机等 */ { goto UnknownUsbDevice; } strcpy(TarFileName,"/NEW.TXT"); s=CH376FileCreate(TarFileName); while(1) { s=CH376FileOpen(TarFileName); if(s==USB_INT_SUCCESS) { CH376ByteLocate(0XFFFFFFFF); } CH376ByteWrite(RxBuf,ThisLen,NULL); CH376FileClose(TRUE); ByteCount +=ThisLen; if(sizeof(RxBuf)==0) { break; } } UnknownUsbDevice: while ( CH376_DiskConnect( ) == USB_INT_SUCCESS ) { Delayms( 100 ); } }

sizeof(RxBuf)可能是个常量,不能作为判断,您可以不断查看sizeof(RxBuf)的值试验


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