Wio Terminal, Lecture-ecriture carte sd

Bonjour, je travaille sur un projet avec le WIO Terminal de Seeduino. Je rencontre deux problèmes avec la gestion de la carte SD. Je voudrais pouvoir enregistrer les valeurs que renvoient 4 capteurs sur la carte.

Premièrement, si j'ai bien compris, après avoir ouvert un fichier sur la SD ( ou l'avoir créée si il n'existe pas), l'instruction FILE_WRITE impose l'écriture sur le fichier en partant de la fin de celui-ci. Lorsque j'ouvre le fichier sur la SD, il n'y a qu'une seule ligne comme si chaque nouvelle ligne venait écraser la précédente.

Mon deuxième problème est lié au moniteur série, l'écriture des fichiers sur la SD ne se fait que si le moniteur série est ouvert.
Il y avait une instruction :

//  while (!Serial) {
//  }

Mais je l'ai commenté et le problème persiste.

Je vous mets le code en entier:

#include <SPI.h>
#include <Seeed_FS.h>
#include "SD/Seeed_SD.h"
 
File myFile;
 
void setup() {
  Serial.begin(115200);
//  while (!Serial) {
//  }
  Serial.print("Initializing SD card...");
  if (!SD.begin(SDCARD_SS_PIN, SDCARD_SPI)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");
 
 
}
 
void loop() {
 // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);
 
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    // close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
 
  // re-open the file for reading:
  myFile = SD.open("test.txt", FILE_READ);
  if (myFile) {
    Serial.println("test.txt:");
 
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

Si quelqu’un a une idée, toute aide sera la bienvenue.
Merci d'avance

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Salut.
Utilise tout simplement FILE_APPEND au lieu de FILE_WRITE.

J'ai fais la modification avec FILE_APPEND, les donnés s'affichent bien sur le fichier, mais cela ne résous pas le problème liée au moniteur série : il faut que celui soit ouvert pour que les mesures s'inscrivent sur le fichier

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.