Создание файла на SD-карте
У меня есть Arduino Mega, подключенная к устройству чтения SD-карт (торговая марка Catalex), которое, по крайней мере, обнаруживает карту, когда отображает информацию о карте. Но когда я пытаюсь создать файл, он его не создает. Я использую следующий код:
if (SD.exists("data.txt")) {
Serial.println("data.txt exists.");
} else {
Serial.println("data.txt doesn't exist.");
}
File root=SD.open("data.txt", FILE_WRITE); //открываем Файл на запись
if (SD.exists("data.txt")) {
Serial.println("data.txt exists.");
} else {
Serial.println("data.txt doesn't exist.");
}
Я также пытался использовать этот код:
File root2 = SD.open("file.txt", O_RDWR | O_APPEND);
if (!root2) {
// Это не удалось, поэтому попробуйте создать новый файл.
root2 = SD.open("file.txt", O_RDWR | O_CREAT);
if (!root2) {
// Это тоже не удалось, так что сдавайся.
Serial.println("Failed to open file.txt");
}
}
[Обновить]
Я также пытался использовать этот более простой код, но он тоже не работает:
#include <SD.h>
const int chipSelect = 10;
Sd2Card card;
void setup() {
Serial.begin(115200);
while (!Serial) {
; // ждем подключения последовательного порта. Требуется только для родного порта USB
}
Serial.print("Initializing SD card...");
// смотрим, присутствует ли карта и может ли она быть инициализирована:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// больше ничего не делаем:
return;
}
Serial.println("card initialized.");
}
void loop() {
File myFile = SD.open("Data.txt", FILE_WRITE);
if (myFile) {
for (int i = 0; i < 101; i++) {
myFile.print(i);
myFile.print(" multiplied by two is ");
myFile.println(i * 2, DEC);
}
Serial.println("Finished");
myFile.close();
} else {
Serial.println("Error opening Data.txt");
}
// больше ничего не делать
do { } while(1);
}
2 ответа
▲ 2
// открываем новый файл и тут же его закрываем:
Serial.println("Creating example.txt...");
myFile = SD.open("example.txt", FILE_WRITE);
myFile.close();
Это то, что вы пропустили (наверное...).
Перейдите по ссылке и ознакомьтесь с выполненными шагами:
https://www.arduino.cc/en/Tutorial/Files
,
@Sonali_B
▲ 0
Если вы хотите убедиться, что у него не будет проблем с форматом SD-карты, отформатируйте ее в FAT, это наиболее совместимый тип формата.
,
@Xenu
Смотрите также:
- SD-карта не инициализируется
- Печать содержимого файла SD - карты на ЖК-дисплее
- Записать массив на SD
- Nextion Display не получает обновленных данных
- Использование Arduino wireless SD Shield для сохранения данных на SD-карту и отправки на ПК по беспроводной сети
- Инициализация SD-карты не удалась
- Arduino Mega2560, Ethernet Shield & OV0706: "Камера не найдена"
- Как отправить информацию с сайта на ардуино?
Я не думаю, что это имеет значение, но можете ли вы попытаться закрыть файл после открытия и до вызова exists?, @Michel Keijzers
@MichelKeijzers Да, я пробовал, и это не работает, @Miguel Sanz Narrillos
Можно попробовать отформатировать карту в другом формате (я не знаю, какие форматы поддерживает библиотека), также можно проверить, действительно ли файл создается (на ПК) или существующий не работает., @Michel Keijzers
@MichelKeijzers Я не понимаю, почему я открываю новый файл кода и копирую код, и это сработало. Спасибо за помощь, @Miguel Sanz Narrillos
Рад, что вы можете продолжить сейчас, @Michel Keijzers