Дополнительный файл `eecfbba=.@aa` на SD-карте

Я делаю проект, и мне нужна SD-карта. Все работало хорошо, но через некоторое время, когда я прочитал SD-карту с моего ПК (Windows 10 64 бит, Intel Core), я нашел файл с именем eecfbba=.@aa. Он настолько большой, что почти съел один ГБ моей SD-карты. Но когда я попытался открыть его с помощью блокнота, блокнот сообщает мне, что на самом деле такого файла нет, и спрашивает, хочу ли я его создать. Я попытался удалить его, но проводник также сказал мне, что такого файла нет. Что это?

Это мой код:

#include <ArduinoJson.h>

// Версия 0.20.1.19.3.7:
// 19.01.2020, 16:10, тест записи кнопки, 7-я версия.

#include <SD.h>
#include <SPI.h>
#include <TMRpcm.h>
#include <Wire.h>
#include "RTClib.h"
//#включить <string.h>

RTC_DS1307 rtc;
String strdoc;
char daysOfTheWeek[7][2] = {"su", "mo", "tu", "we", "th", "fr", "sa"};
#define SD_ChipSelectPin 10  // 如果使用 arduino nano 328 可使用Pin4

TMRpcm audio;
void setup() {
  audio.speakerPin = 8;
  Serial.begin(9600);
  pinMode(25, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
  else
  {
    Serial.println("rtc started");
  }

  if (!SD.begin(SD_ChipSelectPin)) {
    Serial.println("SD Fail");
    return;
  } else {
    Serial.println("SD OK");
  }

  audio.setVolume(6);
  audio.CSPin = SD_ChipSelectPin;

  StaticJsonDocument<200> doc;
  doc["sensor"] = "gps";
  doc["time"] = 1351824120;
  JsonArray data = doc.createNestedArray("data");
  data.add(48.756080);
  data.add(2.302038);
  serializeJson(doc, strdoc);
}
bool isrecording = false;
bool recordButtonPressed()
{
  return (digitalRead(25) == LOW);
}
bool playButtonPressed()
{
  return (digitalRead(7) == LOW);
}
void loop() {
  delay(200);
  // Ниже отформатированное значение даты и времени.
  DateTime now = rtc.now();
  // Ниже представлена сериализованная дата и время.
  String filename = (String)(now.unixtime() % 10000000) + ".j";
  // Serial.println(имя файла);
  if (recordButtonPressed())
    if (!isrecording)
    {
      isrecording = true;
      audio.startRecording("test.wav", 16000, A0);
      Serial.println("stt");
    }
    else
    {
      isrecording = false;
      Serial.println("stp");
      audio.stopRecording("test.wav");
    }
  Serial.println("sdsad991===`=`");
  if (playButtonPressed())
  {
    audio.play("test.wav");
    Serial.println("ply");
  }
  String dataString = strdoc;
  if (!isrecording)
  {
    File dataFile = SD.open(filename, FILE_WRITE);

    if (!dataFile) {
      Serial.println(F("Failed to create file"));
    }
    else
    {
      dataFile.println(dataString);
      Serial.println("Wrote string.");
      dataFile.close();
      Serial.println("Closed file.");
    }
  }
  /* Please ignore this line */
  // // audio.play("test.wav"); перерыв;аудио.громкость(1); перерыв;аудио.громкость(0); перерыв;аудио.stopPlayback(); перерыв;
}

PS Я использую Mega 2560, поэтому контакты MISO, MOSI, SCK и CS разные (то есть 50,51,52,10).

Редактировать 25 января 2020 г., 14:15 (по пекинскому времени) В 20 января у меня проблемы посерьезнее. Появляется все больше и больше больших файлов. У всех одинаковая ситуация. Подробности смотрите на этой фотографии (игнорируйте выбранные файлы): Imgur или 咱们中国人上不去imgur,用这个: File-up(直接下载)

, 👍0

Обсуждение

@ jsotola спасибо за быстрый ответ. Но теперь у меня большие проблемы: есть куча других файлов! [Скриншот моей SD-карты](https://imgur.com/a/6ncCD4T) (PS Не обращайте внимания на выбранные, это то, что я хочу. Сосредоточьтесь на других), @Chrimpyslime

Я хочу знать, что это такое и нужно ли мне что-то делать?, @Chrimpyslime

не используйте класс String, @Juraj

@Juraj спасибо, я попробую. Но не могли бы вы рассказать мне настоящую причину, по которой класс String будет создавать такие файлы?, @Chrimpyslime

https://majenko.co.uk/blog/evils-arduino-strings, @Juraj

Хорошо, большое спасибо., @Chrimpyslime


1 ответ


Лучший ответ:

0

Благодаря @Juraj я решил проблему. Удалил эти файлы, вручную отформатировав SD-карту.

Это не совсем ответ, вы можете увидеть ответ в этом комментарии под вопросом.

,