OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4960|回复: 3

有关STM32的CH376扇区读U盘后TXT文件中已有数据丢失的问题

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2016-3-3
在线时间
3 小时
发表于 2016-3-3 17:01:32 | 显示全部楼层 |阅读模式
新手,请指教,谢谢!
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盘中

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2016-3-3
在线时间
3 小时
 楼主| 发表于 2016-3-3 17:37:15 | 显示全部楼层
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2016-3-3
在线时间
3 小时
 楼主| 发表于 2016-3-4 14:15:10 | 显示全部楼层
原子哥,求指教!
回复 支持 反对

使用道具 举报

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2016-4-3
在线时间
16 小时
发表于 2016-4-12 17:08:04 | 显示全部楼层
你这个做得如何了???加我QQ  我也在做
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 15:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表