我已"成功"使用 开箱即用代码将数据写入 SD 卡。 程序尝试执行循环、在循环中它将获取数据、将其写入 SD 卡并再次获取数据、持续10次、数据集。 写入速度不必太快、因为数据是获取的、然后在获取数据后 写入一组数据、然后再获取下一组数据 、我在示例中仅使用了代码。
问题、我第一次执行程序时、它会执行10个数据收集并写入10个文件、每次写入一个文件。
再执行几次后、要么使用 按钮复位、甚至通过断开电源来完成 POR 以重新启动程序、下次执行时、迟早 只写入7个文件。 下一次尝试写入的内容可能会更少。 当"程序"挂起时、它确实会跟踪它应该写入的日志文件编号、因为下次写入时、日志文件编号会递增 到之前应该写入的文件编号之上、而该文件编号会丢失。 在某个点经过多个周期后、甚至不会使用复位按钮或完成 POR 来尝试重新启动、从而获取或写入一组数据。
我增加了堆栈和堆大小、只是尝试一些操作、但这并不起作用、在问题重新出现之前、10个成功文件的数量似乎没有改变。
要使其返回到运行位置、我重新加载程序。 我还注意到、如果每次写入10个文件时、我都会删除卡并删除10个文件、然后删除并重新加电、似乎会在问题重新出现之前继续多次、但是、这种情况迟早会发生。 它会记住最后写入的文件编号、并开始正确地对新日志文件进行编号、从它知道的最后一个文件编号开始递增、即使它不再在卡上。 所有这些似乎都是有效的。
我在开箱即用代码中看到、每次通过时:
它会检查卡是否已安装。
它会检查是否有目录。
我想、它会检查并读取文件名、并以某种方式使用它、或许可以知道对下一个日志文件进行编号的内容
尽管如此、即使我删除了所有以前的日志文件、它仍然知道从何处正确开始编号、因此它必须将该信息存储在其他位置。 因此 、再说一次、很多工作 正常。 我尝试找到存储此文件的位置、因为可能是该区域存在问题。
很抱歉、请长时间 wined。 我单步执行开箱即用的代码、执行所有这些"操作"以写入卡、其中许多我不理解/识别命令、而且它在所包含的文件之间跳转很多、我会丢失这些文件。
如果有任何帮助,将不胜感激