做项目,因为硬件没有设计停止写文件的按钮(或信号),设备断电会导致文件无法在windows显示。后来运用f_sync函数,每写一次SD卡,就用f_sync保存起来。大约每秒使用16次,连续十几个小时采集数据并保存。以为万无一失,然而悲剧发生了。有的设备前几小时数据正常,后面的数据直接出错。有的设备第一次就直接写入错误。
解决办法:
(1)每次使用之前都给SD卡格式化。
(2)减少f_sync函数的使用频率。增加长缓冲区。
(3)设备增加按钮来停止写文件,并用f_close函数关闭文件,不使用f_sync函数。