Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino SD.open()返回true,但不创建文件_Arduino - Fatal编程技术网

Arduino SD.open()返回true,但不创建文件

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

我面临SD卡和Arduino的一个特殊问题。我想创建一个函数,在SD卡上为不同的一天创建一个新文件。现在,我正在用int模拟日历。我知道那个问题已经讨论过了,但我似乎找不到一个类似的问题

代码:

#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文件系统。

哇,您是救世主。从来没有想过字符应该在一个特定的长度。非常感谢。哇,你真是个救世主。从来没有想过字符应该在一个特定的长度。谢谢。