Teensy 4.1 SD.open 随机无法创建文件

问题描述 投票:0回答:1

我正在创建一个 Teensy 4.1 系统,其中包含使用 SD 卡的数据记录器草图。 Teensy 通过外部消息接收日志名称,检查该文件是否存在,如果存在,则使用后缀(“_X”)递增它。那部分工作正常,问题出在SD文件管理部分。

每当我尝试实际创建文件(甚至还没有向其中写入数据)时,我就会开始出现不稳定的行为。具体来说,发生了这样的事情: Sketch 能够毫无问题地创建“original_name”文件。然后检查文件是否存在,递增并创建“original_name_1”,没有问题。现在,当它尝试创建“original_name_2”时,会失败。重新启动teeny,再次失败。从插槽中取出 SD 卡,在读卡器中打开,检查文件(全部创建正常),全部删除,重新插入 teensy。 “original_name”、“”original_name_1”和“original_name_2”均已成功创建。现在在“original_name_3”上失败。 将草图更改编辑为其他日志名称现在无法创建“original_name”基本文件。再次更改有时会在基本名称处失败,有时会编写一些迭代,但从未成功超过第三个增量。

我被难住了。

代码尽可能简单,遵循通用 SD 库示例。 代码:

File log_file = SD.open(log_name, FILE_WRITE);

if (!log_file) {
    Serial.println("File open failed!");
}

if(log_file) log_file.close();

使用

#include <SD.h>
#include <SPI.h>

其他信息: 我使用的是板载 SD 卡插槽(显然)、OctoWS2811 适配器 和连接到引脚 24、28 和 37(空闲 PWM 引脚)的共阳极 RGB LED。在 Visual Studio 上使用 Visual Micro。 使用官方SD存储卡格式化程序格式化32GB SD卡,检查时没有显示错误。

arduino sd-card teensy visualmicro
1个回答
0
投票

Arduino SD 库基于经典的 FAT 文件系统,使用 8.3 文件名,这意味着文件名长度为 8 个字符,扩展名最多为 3 个字符。

使用较短的文件名或切换到支持现代文件系统实现的SDFat库

© www.soinside.com 2019 - 2024. All rights reserved.