新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2016-3-3
- 在线时间
- 3 小时
|
新手,请指教,谢谢!
while ( CH376DiskConnect( ) != USB_INT_SUCCESS )
{
mDelaymS( 100 );
}
mDelaymS( 200 );
for ( i = 0; i < 100; i ++ )
{
mDelaymS( 50 );
s = CH376DiskMount( );
if ( s == USB_INT_SUCCESS )
break;
else if ( s == ERR_DISK_DISCON )
break;
if ( CH376GetDiskStatus( ) >= DEF_DISK_MOUNTED && i >= 5 )
break;
}
if ( s == ERR_DISK_DISCON )
{
while(1);
//continue;
}
if ( CH376GetDiskStatus( ) < DEF_DISK_MOUNTED )
{
while(1);
}
i = CH376ReadBlock( buf );
if ( i == sizeof( INQUIRY_DATA ) )
{
buf[ i ] = 0;
sprintf(str, "%s", ((P_INQUIRY_DATA)buf) -> VendorIdStr );
}
s = CH376FileOpen( "/TEST.TXT" );
if ( s == USB_INT_SUCCESS )
{
NewSize = CH376GetFileSize( );
s = CH376SecLocate( 0xFFFFFFFF );
total = NewSize & ( DEF_SECTOR_SIZE - 1 );
if ( total )
{
s = CH376SecRead( FileDataBuf, 1, NULL );
s = CH376SecLocate( 0xFFFFFFFF );
}
}
else if ( s == ERR_MISS_FILE )
{
s = CH376FileCreate( NULL );
//mStopIfError( s );
total = 0;
NewSize = 0;
}
total += sprintf((char *)FileDataBuf + total, "在本次添加数据之前,该文件已有数据的长度是%ld字节\xd\xa", NewSize );
mFlushBufferToDisk( 0 );
for(aa=0;aa<100;aa++)
{
FileDataBuf[aa]=0XAA;
total += sprintf((char *)FileDataBuf+ total, "FileDataBuf[aa]=%X\xd\xa", FileDataBuf[aa]);
}
mFlushBufferToDisk( 0 );
total += sprintf( (char *)FileDataBuf + total, " ********************************* " );
total += sprintf( (char *)FileDataBuf + total, "这次的数据到此结束,程序即将退出\xd\xa" );
mFlushBufferToDisk( 1 );
s = SetFileCreateTime( "/TEST.TXT", MAKE_FILE_DATE( 2016, 3, 3 ), MAKE_FILE_TIME( 11, 48, 20 ) );
s = CH376FileClose( FALSE );
mDelaymS( 200 );
以上是mian函数中的一部分,当首次往U盘的TXT文件中写数据时,会出现部分数据丢失;当U盘的TXT文件中已有数据再向其中写数据,会出现U盘的TXT文件中已存的数据部分丢失。请问这是为什么。还有就是只可以向U盘中写TXT文件吗?我新建doc文件之后,在电脑上打不开,说是不存在U盘中
|
|