关于设备突然断电的问题

您好,我使用你们公司的CH375做了1款数据记录仪,现在可以正常工作,可是这里还是存在一些隐患和小问题。

1.我的产品是起机后就开始记录数据,使用CH375像U盘中存数据,使用字节模式,根据FILELIBC的EXAM7改的。我在程序中设置每次写入64字节,当每写30次后,便更新文件长度一次(用的是写入0个字节的方式而不是用CLOSEFILE)以免突然断电.但是有时候存的数据量大的时候,我打开TXT文档发现“此文档已损坏”,这个问题是怎么产生的呢? 是不是突然断电对保存的文件有损坏呢?有没有更好的解决方法?

(1)你可以做个实验在写完30次后关闭文件退出,在电脑上看文件是否正常. (2)换一种更新方式,调用我们提供的 CH375FileModify()函数来更新试一试. printf( "Modify\n" );//可以不需要此语句 mCmdParam.Modify.mFileAttr = 0xff; //文件属性:0xff为不修改 mCmdParam.Modify.mFileTime = 0FFFF; //文件时间:0xffff为不修改 mCmdParam.Modify.mFileDate = 0FFFF;//文件日期:0xffff为不修改 mCmdParam.Modify.mFileSize = NewFileSize;//根据文件的实际长度计算的结果. i = CH375FileModify( ); 修改当前文件的大小 mStopIfError( i );


存少量的肯定是没问题,但是当文件大的时候,就不能保证了,请问fileclose的作用能够起到保护文件不受破坏的作用么


这个可能是更新FDT表时突然断电,导致写入错误数据.fileclose可以保护数据.在字节模式下可以用这个来更新文件长度. 你实验一下,是断电引起的这个现象还是写入数据量比较大引起的,如果每次写大数据都产生这种情况的话就有可能不是断电引起的.


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