Arduino SD.open()返回true,但不创建文件
我面临SD卡和Arduino的一个特殊问题。我想创建一个函数,在SD卡上为不同的一天创建一个新文件。现在,我正在用int模拟日历。我知道那个问题已经讨论过了,但我似乎找不到一个类似的问题 代码:Arduino SD.open()返回true,但不创建文件,arduino,Arduino,我面临SD卡和Arduino的一个特殊问题。我想创建一个函数,在SD卡上为不同的一天创建一个新文件。现在,我正在用int模拟日历。我知道那个问题已经讨论过了,但我似乎找不到一个类似的问题 代码: #include//包含在floatToString中 #包括 #包括 #包括 国际年=2014年; 整月=11; 整日=4天; 字符日期标题[20];//=“0000000000.txt”; 无效打印日期标题(字符*日期标题,整数Y,整数M,整数D){ //char dateTitle[20]; sp
#include//包含在floatToString中
#包括
#包括
#包括
国际年=2014年;
整月=11;
整日=4天;
字符日期标题[20];//=“0000000000.txt”;
无效打印日期标题(字符*日期标题,整数Y,整数M,整数D){
//char dateTitle[20];
sprintf(dateTitle,“%4d-%02d-%02d.txt”,Y,M,D);
返回;
}
常数int chipSelect=4;
无效设置(){
//打印日期标题(日期标题、年、月、日);
Serial.begin(9600);
而(!串行){
;
}
串行打印(“初始化SD卡…”);
如果(!SD.begin(芯片选择)){
Serial.println(“卡故障或不存在”);
而(1),;
}
Serial.println(“卡已初始化”);
}
void循环(){
连续打印(日期标题);
延迟(1000);
文件dataFile=SD.open(dateTitle,File\u WRITE);
如果(数据文件){
dataFile.println(“某物”);
dataFile.close();
连续打印(天);
Serial.println(“某物”);
延迟(1000);
}否则
Serial.println(“错误”);
}
在代码中,我有一个函数void printDateTitle
,它将日历中的输入格式化为字符串,我想将其用作文件的标题
而且,当我在void loop()
中使用printDateTitle(dateTitle,year,month,day)定义函数时代码>我在输出中得到一个“错误”,意思是SD.open=false
问题是,即使SD.open返回true,它也不会在SD卡上创建文件。txt包含在字符数组中。我还使用了capital.TXT
关于这个问题,我将不胜感激
作为参考,我使用Arduino Uno和Arduino IDE Arduino SD库文档声明它使用“文件的短8.3名称”。因此,只有名称为8个字符,文件扩展名为3个字符的文件才有效。例如:12345678.txt有效,123456789.txt无效
您的日期字符串(2014-11-04.txt)太长,因为它只有10个字符,而不是8个字符
另外,请确保您已将SD卡格式化为FAT16或FAT32文件系统。Arduino SD库文档说明它使用了“短8.3文件名”。因此,只有名称为8个字符,文件扩展名为3个字符的文件才有效。例如:12345678.txt有效,123456789.txt无效
您的日期字符串(2014-11-04.txt)太长,因为它只有10个字符,而不是8个字符
还要确保您已将SD卡格式化为FAT16或FAT32文件系统。哇,您是救世主。从来没有想过字符应该在一个特定的长度。非常感谢。哇,你真是个救世主。从来没有想过字符应该在一个特定的长度。谢谢。