Ошибка при использовании модуля SD-карты: нет соответствующей функции для вызова
Этот код — всего лишь тестовый код для записи файла на SD-карту с использованием модуля SD-карты. Когда я запускаю код, я получаю это сообщение об ошибке и не уверен, что сделать, чтобы исправить код: no matching function for call to'SDLib::SDClass::exists(SDLib::File&)'
.
#include <SD.h>
#include <SPI.h>
int cs = 10;
File myTest;
void setup()
{
//
char myTestName[] = "MyTest.txt";
// Открываем последовательную связь и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
}
Serial.println("Initializing SD card...");
Serial.println();
pinMode(cs, OUTPUT);
pinMode(SS, OUTPUT);
if (!SD.begin(cs)) {
Serial.println("SD did not initiliaze");
while (1) ;
}
Serial.println("SD initialized.");
if (! SD.exists(myTest)){
myTest = SD.open(myTestName, FILE_WRITE);
myTest.println("My 1st Line of Data");
myTest.flush();
}
else{
myTest = SD.open(myTestName, FILE_WRITE);
myTest.println("Another Line of Data");
myTest.flush();
}
Serial.println("Done Writing");
}
void loop()
{
}
@gp0478, 👍1
1 ответ
Лучший ответ:
▲ 0
Функция определяется как
// Методы определения существования запрошенного пути к файлу.
boolean exists(char *filepath);
Источник: https://github.com/adafruit/SD/blob/master/SD.h#L90
Вы вызываете его с объектом File
, а не с именем файла. Вы, вероятно, перепутали имена переменных:
File myTest;
void setup()
{
//
char myTestName[] = "MyTest.txt";
//[...]
if (! SD.exists(myTest)){
myTest = SD.open(myTestName, FILE_WRITE);
myTest.println("My 1st Line of Data");
myTest.flush();
}
//..
Просто замените myTest
на myTestName
в вызове SD.exists()
.
,
@Maximilian Gerhardt
Смотрите также:
- Как увеличить скорость записи на SD-карту в Ардуино
- SD-карта не инициализируется
- Что означают эти контакты? Куда мне их подключить?
- Режимы открытия файлов на SD-карте Arduino добавление/перезапись
- Какие контакты можно использовать для выбора микросхемы (CS, CC) на Arduino Nano Every?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Сделать CS (chip select) для работаты в SPI (для и SD карты и OLED)
- Можно ли подключить экран SD-карты к плате Digispark ATtiny85?