INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
ESP32 RX2 und TX2
28.12.2019, 09:41
Beitrag #9
RE: ESP32 RX2 und TX2
(28.12.2019 00:49)Gerdchen03 schrieb:  OK, wollte es übersichtlicher halten:

Code:
//****  Screen and SPIFFS Headers and Defines ****
...
void loop() {  
  delay(20);
...
}

..ich meine das hier nix gehen kann wenn in der Loop außer nem delay nichts gemacht wird...von daher ist das Programm wirklich übersichtlich Big Grin
Und die Standart Serielle zum Monitor solltest du auch initialisieren und dahin auch die Monitormeldungen ausgeben und nicht an das Cubieboard schicken...das versteht diese Ausgaben dann wohl nicht.

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.12.2019, 10:40
Beitrag #10
RE: ESP32 RX2 und TX2
Zitat:warum hast Du
//HardwareSerial Serial(1);
auskommentiert? Die legt das Objekt für die Hardware an.
Ich hatte das so verstanden, dass der ESP32 Serial, Serial1 und Serial2 schon kennt, ohne dass HardwareSerial Serial(1) aktiviert werden muss. Wenn ich es aktiviere, bekomme ich eine Fehlermeldung des Kompilers:
Code:
Mehrere Bibliotheken wurden für "TFT_eSPI.h" gefunden
/var/folders/6t/qjgfw2413f7ddnjzk_08btxw0000gp/T/arduino_cache_626239/core/core_03764e2270aaed7ed0b176a93d6bd8a4.a(HardwareSerial.cpp.o):(.bss.Serial+0x0):​ multiple definition of `Serial'
sketch/OpenVarioGauge.ino.cpp.o:(.bss.Serial+0x0): first defined here
collect2: error: ld returned 1 exit status
Benutzt: /Users/root/Documents/Arduino/libraries/TFT_eSPI
Mehrere Bibliotheken wurden für "SPI.h" gefunden
Benutzt: /Users/root/Documents/Arduino/hardware/espressif/esp32/libraries/SPI
Mehrere Bibliotheken wurden für "FS.h" gefunden
Benutzt: /Users/root/Documents/Arduino/hardware/espressif/esp32/libraries/FS
Mehrere Bibliotheken wurden für "SPIFFS.h" gefunden
Benutzt: /Users/root/Documents/Arduino/hardware/espressif/esp32/libraries/SPIFFS
exit status 1
Fehler beim Kompilieren für das Board DOIT ESP32 DEVKIT V1.
Ich nehme an ich muss noch eine Bibliothek nachinstallierten. Wenn ich in der Bibliotheksverwaltung nach HardwareSerial suche finde ich:
- HardwareSerialRS485
- SomeSerial
- XLR8HardwareSerial

Welche wäre die richtige?
Die Zeile müsste aber bei mir HardwareSerial Serial(2); heißen, weil ich die zweite Schnittstelle nutzen möchte, oder?

Zitat:..ich meine das hier nix gehen kann wenn in der Loop außer nem delay nichts gemacht wird...von daher ist das Programm wirklich übersichtlich
Das Programm stammt von einem Entwickler, der es nie fertig gestellt hat. Daher kann es durchaus sein, dass an der ein oder anderen Stelle Fragmente auftreten, die keinen Sinn machen, bzw. nicht fertig gestellt wurden. Mit GPIO1 und GPIO3 hatte es aber trotz der Zeilen geklappt. Ich nehme an, sie werden ersatzlos gelöscht, oder?

Hier mal der mit euren Ratschlägen überarbeitete Sketch.
Code:
//****  Screen and SPIFFS Headers and Defines ****
//************************************************

//#include<HardwareSerial.h>
#include<TFT_eSPI.h>
#include<SPI.h>
#include "LogoJR.h"
#include "LogoOV.h"
#include "FS.h"
#include "SPIFFS.h"

#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF
#define GREY    0x18E3
#define RXD2 16
#define TXD2 17

HardwareSerial Serial(2);
TFT_eSPI tft = TFT_eSPI();
TFT_eSprite needle = TFT_eSprite(&tft);
TFT_eSprite Nav1 = TFT_eSprite(&tft);
TFT_eSprite Nav2 = TFT_eSprite(&tft);


//******************************************
//****  FreeRTOS Headers and Variables  ****
//******************************************

#include"freertos/FreeRTOS.h"
#include"freertos/Task.h"
//#include"freertos/semphr.h"
#include"esp_system.h"
#include<stdio.h>
TaskHandle_t Task1,Task2;


#define OuterRadius 160
#define InnerRadius 130
#define xCenter 160
#define yCenter 160


extern const unsigned char logobunny[];
extern uint16_t logoOV[];
float E;


void setup() {
  tft.init();
  tft.setRotation(0);
  splash();
  // Note the format for setting a serial port is as follows: Serial2.begin(baud-rate, protocol, RX pin, TX pin);
  Serial.begin(115200, SERIAL_8N1);
  Serial2.begin(115200, SERIAL_8N1, RXD2, TXD2);
  Serial.println("");
  Serial.println("Serial Txd is on pin: "+String(TX));  // Monitorausgabe
  Serial.println("Serial Rxd is on pin: "+String(RX));  // Monitorausgabe
  SPIFFSstart();  
  listFiles();
  xTaskCreatePinnedToCore(ScreenRefresh,"Screen Refresh",2500,NULL,30,&Task1,1);
  xTaskCreatePinnedToCore(SerialScan,"Serial Scan",2500,NULL,20,&Task2,0);
  //Serial1.begin(9600,SERIAL_8N1,1,3);
  //Serial1.println("Serial Started");
}

void ScreenRefresh(void *p){
  Serial.println("Task 1 created");
  float i;
  tft.loadFont("micross20");
  Nav1.loadFont("micross15");
  Nav2.loadFont("micross50");
  while(1){
    //xSemaphoreTake(ScreenKeeper,1000);
    float angle=(E*22)+180;
    VarioNeedle(angle);
    DrawData("Avg.",E,1,85,80,true);
    DrawData("Alt.",1500,0,60,140,false);
    DrawData("Mc.",2,1,100,200,false);
    //delay(10);
  }
}

void SerialScan (void *p){
  Serial.println("Task 2 Created");
  char Data;
  String DataString,Vario;
  int pos,i;
  while(1){
    if (Serial2.available()){
      Data =Serial2.read();
      if(Data=='$'){
        while (Data != 10){
          DataString += Data;
          Data=Serial2.read();
        }
      }
    }
    if (DataString.startsWith("$POV")){
      Serial2.println(DataString);
      pos=DataString.indexOf(',');
      DataString.remove(0,pos+1);
      Serial2.println(DataString);
      if(DataString[0]=='E'){
        pos=DataString.indexOf(',');
        DataString.remove(0,pos+1);
        Serial2.println(DataString);
        pos=DataString.indexOf('*');
        for (i=0;i<pos;i++){
         Vario+=DataString[i];
        }
      }
      Serial2.println(Vario);
      E=Vario.toFloat();
      Serial2.println(E);
      Vario="";
    }
    DataString="";
    vTaskDelay(20);
   }
}

//void loop() {  
//  delay(20);
//}

//*************************
//****  Splash Screen  ****
//*************************

void splash(){
  Serial.print("Splash Screen");
  tft.fillScreen(WHITE);
  tft.setWindow(20,91,20+199,91+136);
  tft.pushColors(logoOV,200*137);
  delay(3000);
  tft.fillScreen(GREY);
  tft.fillCircle(xCenter,yCenter,InnerRadius,BLACK);  
}

//*********************************
//****  Deg to Rad conversion  ****
//*********************************

float deg2rad(float* angle){
//  float tempangle=*angle;
  *angle=*angle/180*3.141516;
//  return angle;  
}

//*********************************
//****  Vario Needle Movement  ****
//*********************************

void VarioNeedle(float inangle){
  deg2rad(&inangle);
  
  int spriteH = 30; //Sprite Height
  int spriteW = 30; //Sprite Width
  needle.createSprite(spriteW,spriteH);
  needle.fillScreen(GREY);
  
  float MiddleRadius = ((OuterRadius-InnerRadius)/2)+InnerRadius; //Middle of Sliding Circle radius
  float SpritexCenter = MiddleRadius*cos(inangle)+xCenter; //X coordinate of the sprite's center referred to the TFT coordinates
  float SpriteyCenter = MiddleRadius*sin(inangle)+yCenter; //Y coordinate of the sprite's center referred to the TFT coordinates
  
  float xCenter1 = (spriteW/2)-MiddleRadius*cos(inangle); //x Needle Pivoting center coordinate referred to Sprite's coordinate system.
  float yCenter1 = (spriteH/2)-MiddleRadius*sin(inangle); //y Needle Pivoting center coordinate referred to Sprite's coordinate system.
    
  needle.fillCircle(xCenter1,yCenter1,InnerRadius,BLACK); //Sprite Background without needle
  
  //****  Needle Triangle point calculation  ****
    
  int x0 = 10*cos(inangle+3.14)+(spriteW/2);
  int y0 = 10*sin(inangle+3.14)+(spriteH/2);
  int x1 = 10*cos(inangle+0.4)+(spriteW/2);
  int y1 = 10*sin(inangle+0.4)+(spriteH/2);
  int x2 = 10*cos(inangle-0.4)+(spriteW/2);
  int y2 = 10*sin(inangle-0.4)+(spriteH/2);
  needle.fillTriangle(x0,y0,x1,y1,x2,y2,RED);
  //needle.drawLine(x0,y0,x1,y1,RED);
  
  needle.pushSprite(SpritexCenter-(spriteW/2),SpriteyCenter-(spriteH/2)); //Pushing Needle Sprite to TFT
  needle.deleteSprite();

  //****  Draw divisions and numbers  ****
  
  for(int i=70;i<=300;i+=22){
    float divangle=i;
    deg2rad(&divangle);
    int x0 = OuterRadius*cos(divangle)+xCenter;
    int y0 = OuterRadius*sin(divangle)+yCenter;
    int x1 = (MiddleRadius+10)*cos(divangle)+xCenter;
    int y1 = (MiddleRadius+10)*sin(divangle)+yCenter;
    tft.drawLine(x0,y0,x1,y1,WHITE);
  }
  tft.setTextColor(WHITE,GREY);
  tft.setCursor(12,152);
  tft.println("0");
  tft.setCursor(25,97);
  tft.println("1");
  tft.setCursor(53,52);
  tft.println("2");
  tft.setCursor(94,22);
  tft.println("3");
  tft.setCursor(148,9);
  tft.println("4");
  tft.setCursor(206,18);
  tft.println("5");
  tft.setCursor(25,203);
  tft.println("1");
  tft.setCursor(53,248);
  tft.println("2");
  tft.setCursor(94,280);
  tft.println("3");
  tft.setCursor(148,294);
  tft.println("4");
  tft.setCursor(206,287);
  tft.println("5");
}

//*******************************
//**** Draw NavBox and Data  ****
//*******************************

void DrawData(char title[],float data,int precision, int x,int y,bool sign){
  Nav1.createSprite(30,15);
  //Nav1.fillScreen(YELLOW);
  Nav1.setCursor(0,0);
  Nav1.setTextColor(CYAN,BLACK);
  Nav1.println(title);
  Nav2.createSprite(140,50);
  Nav2.setCursor(0,0);
  Nav2.setTextColor(WHITE,BLACK);
  if ((data>0) && (sign)){
    Nav2.print("+");
  }
  Nav2.println(data,precision);
  Nav1.pushSprite(x,y);
  Nav1.deleteSprite();
  Nav2.pushSprite(x+30,y);
  Nav2.deleteSprite();
}

// ************************************
// ****  Initialize SPIFFS memory  ****
// ************************************

void SPIFFSstart(){
  if (!SPIFFS.begin()){
    Serial.println("SPIFFS initialisation failed!");
    while (1) yield(); // Stay here twiddling thumbs waiting
    }
  Serial.println("\r\nInitialisation done.");
}

  
// ********************************************************
// ****  List files in ESP8266 or ESP32 SPIFFS memory  ****
// ********************************************************

void listFiles(void) {
  Serial.println();
  Serial.println("SPIFFS files found:");

#ifdef ESP32
  listDir(SPIFFS, "/", true);
#else
  fs::Dir dir = SPIFFS.openDir("/"); // Root directory
  String  line = "=====================================";

  Serial.println(line);
  Serial.println("  File name               Size");
  Serial.println(line);

  while (dir.next()) {
    String fileName = dir.fileName();
    Serial.print(fileName);
    int spaces = 25 - fileName.length(); // Tabulate nicely
    if (spaces < 0) spaces = 1;
    while (spaces--) Serial.print(" ");
    fs::File f = dir.openFile("r");
    Serial.print(f.size()); Serial.println(" bytes");
    yield();
  }

  Serial.println(line);
#endif
  Serial.println();
  delay(1000);
}

#ifdef ESP32
void listDir(fs::FS &fs, const char * dirname, uint8_t levels) {
  Serial.printf("Listing directory: %s\n", dirname);

  fs::File root = fs.open(dirname);
  if (!root) {
    Serial.println("Failed to open directory");
    return;
  }
  if (!root.isDirectory()) {
    Serial.println("Not a directory");
    return;
  }

  fs::File file = root.openNextFile();
  while (file) {

    if (file.isDirectory()) {
      Serial.print("DIR : ");
      String fileName = file.name();
      Serial.print(fileName);
      if (levels) {
        listDir(fs, file.name(), levels - 1);
      }
    } else {
      String fileName = file.name();
      Serial.print("  " + fileName);
      int spaces = 32 - fileName.length(); // Tabulate nicely
      if (spaces < 1) spaces = 1;
      while (spaces--) Serial.print(" ");
      String fileSize = (String) file.size();
      spaces = 8 - fileSize.length(); // Tabulate nicely
      if (spaces < 1) spaces = 1;
      while (spaces--) Serial.print(" ");
      Serial.println(fileSize + " bytes");
    }

    file = root.openNextFile();
  }
}
#endif
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.12.2019, 15:04
Beitrag #11
RE: ESP32 RX2 und TX2
So funktioniert es nun. Ich hatte wahrscheinlich eine kalte Lötstelle am MAX3232.

Code:
//****  Screen and SPIFFS Headers and Defines ****
//************************************************

//#include<HardwareSerial.h>
#include<TFT_eSPI.h>
#include<SPI.h>
#include "LogoJR.h"
#include "LogoOV.h"
#include "FS.h"
#include "SPIFFS.h"

#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF
#define GREY    0x18E3
#define RXD2 16
#define TXD2 17

//HardwareSerial Serial(2);
TFT_eSPI tft = TFT_eSPI();
TFT_eSprite needle = TFT_eSprite(&tft);
TFT_eSprite Nav1 = TFT_eSprite(&tft);
TFT_eSprite Nav2 = TFT_eSprite(&tft);


//******************************************
//****  FreeRTOS Headers and Variables  ****
//******************************************

#include"freertos/FreeRTOS.h"
#include"freertos/Task.h"
//#include"freertos/semphr.h"
#include"esp_system.h"
#include<stdio.h>
TaskHandle_t Task1,Task2;


#define OuterRadius 160
#define InnerRadius 130
#define xCenter 160
#define yCenter 160


extern const unsigned char logobunny[];
extern uint16_t logoOV[];
float E;


void setup() {
  tft.init();
  tft.setRotation(0);
  splash();
  // Note the format for setting a serial port is as follows: Serial2.begin(baud-rate, protocol, RX pin, TX pin);
  Serial.begin(115200, SERIAL_8N1);
  Serial2.begin(115200, SERIAL_8N1, RXD2, TXD2);
  Serial.println("");
  Serial.println("Serial Txd is on pin: "+String(TX));  // Monitorausgabe
  Serial.println("Serial Rxd is on pin: "+String(RX));  // Monitorausgabe
  SPIFFSstart();  
  listFiles();
  xTaskCreatePinnedToCore(ScreenRefresh,"Screen Refresh",2500,NULL,30,&Task1,1);
  xTaskCreatePinnedToCore(SerialScan,"Serial Scan",2500,NULL,20,&Task2,0);
  //Serial1.begin(9600,SERIAL_8N1,1,3);
  //Serial1.println("Serial Started");
}

void ScreenRefresh(void *p){
  Serial.println("Task 1 created");
  float i;
  tft.loadFont("micross20");
  Nav1.loadFont("micross15");
  Nav2.loadFont("micross50");
  while(1){
    //xSemaphoreTake(ScreenKeeper,1000);
    float angle=(E*22)+180;
    VarioNeedle(angle);
    DrawData("Avg.",E,1,85,80,true);
    DrawData("Alt.",1500,0,60,140,false);
    DrawData("Mc.",2,1,100,200,false);
    //delay(10);
  }
}

void SerialScan (void *p){
  Serial.println("Task 2 Created");
  char Data;
  String DataString,Vario;
  int pos,i;
  while(1){
    if (Serial2.available()){
      Data =Serial2.read();
      if(Data=='$'){
        while (Data != 10){
          DataString += Data;
          Data=Serial2.read();
        }
      }
    }
    if (DataString.startsWith("$POV")){
      Serial2.println(DataString);
      pos=DataString.indexOf(',');
      DataString.remove(0,pos+1);
      Serial2.println(DataString);
      if(DataString[0]=='E'){
        pos=DataString.indexOf(',');
        DataString.remove(0,pos+1);
        Serial2.println(DataString);
        pos=DataString.indexOf('*');
        for (i=0;i<pos;i++){
         Vario+=DataString[i];
        }
      }
      Serial2.println(Vario);
      E=Vario.toFloat();
      Serial2.println(E);
      Vario="";
    }
    DataString="";
    vTaskDelay(20);
   }
}

void loop() {  
  delay(20);
}

//*************************
//****  Splash Screen  ****
//*************************

void splash(){
  Serial.print("Splash Screen");
  tft.fillScreen(WHITE);
  tft.setWindow(20,91,20+199,91+136);
  tft.pushColors(logoOV,200*137);
  delay(3000);
  tft.fillScreen(GREY);
  tft.fillCircle(xCenter,yCenter,InnerRadius,BLACK);  
}

//*********************************
//****  Deg to Rad conversion  ****
//*********************************

float deg2rad(float* angle){
//  float tempangle=*angle;
  *angle=*angle/180*3.141516;
//  return angle;  
}

//*********************************
//****  Vario Needle Movement  ****
//*********************************

void VarioNeedle(float inangle){
  deg2rad(&inangle);
  
  int spriteH = 30; //Sprite Height
  int spriteW = 30; //Sprite Width
  needle.createSprite(spriteW,spriteH);
  needle.fillScreen(GREY);
  
  float MiddleRadius = ((OuterRadius-InnerRadius)/2)+InnerRadius; //Middle of Sliding Circle radius
  float SpritexCenter = MiddleRadius*cos(inangle)+xCenter; //X coordinate of the sprite's center referred to the TFT coordinates
  float SpriteyCenter = MiddleRadius*sin(inangle)+yCenter; //Y coordinate of the sprite's center referred to the TFT coordinates
  
  float xCenter1 = (spriteW/2)-MiddleRadius*cos(inangle); //x Needle Pivoting center coordinate referred to Sprite's coordinate system.
  float yCenter1 = (spriteH/2)-MiddleRadius*sin(inangle); //y Needle Pivoting center coordinate referred to Sprite's coordinate system.
    
  needle.fillCircle(xCenter1,yCenter1,InnerRadius,BLACK); //Sprite Background without needle
  
  //****  Needle Triangle point calculation  ****
    
  int x0 = 10*cos(inangle+3.14)+(spriteW/2);
  int y0 = 10*sin(inangle+3.14)+(spriteH/2);
  int x1 = 10*cos(inangle+0.4)+(spriteW/2);
  int y1 = 10*sin(inangle+0.4)+(spriteH/2);
  int x2 = 10*cos(inangle-0.4)+(spriteW/2);
  int y2 = 10*sin(inangle-0.4)+(spriteH/2);
  needle.fillTriangle(x0,y0,x1,y1,x2,y2,RED);
  //needle.drawLine(x0,y0,x1,y1,RED);
  
  needle.pushSprite(SpritexCenter-(spriteW/2),SpriteyCenter-(spriteH/2)); //Pushing Needle Sprite to TFT
  needle.deleteSprite();

  //****  Draw divisions and numbers  ****
  
  for(int i=70;i<=300;i+=22){
    float divangle=i;
    deg2rad(&divangle);
    int x0 = OuterRadius*cos(divangle)+xCenter;
    int y0 = OuterRadius*sin(divangle)+yCenter;
    int x1 = (MiddleRadius+10)*cos(divangle)+xCenter;
    int y1 = (MiddleRadius+10)*sin(divangle)+yCenter;
    tft.drawLine(x0,y0,x1,y1,WHITE);
  }
  tft.setTextColor(WHITE,GREY);
  tft.setCursor(12,152);
  tft.println("0");
  tft.setCursor(25,97);
  tft.println("1");
  tft.setCursor(53,52);
  tft.println("2");
  tft.setCursor(94,22);
  tft.println("3");
  tft.setCursor(148,9);
  tft.println("4");
  tft.setCursor(206,18);
  tft.println("5");
  tft.setCursor(25,203);
  tft.println("1");
  tft.setCursor(53,248);
  tft.println("2");
  tft.setCursor(94,280);
  tft.println("3");
  tft.setCursor(148,294);
  tft.println("4");
  tft.setCursor(206,287);
  tft.println("5");
}

//*******************************
//**** Draw NavBox and Data  ****
//*******************************

void DrawData(char title[],float data,int precision, int x,int y,bool sign){
  Nav1.createSprite(30,15);
  //Nav1.fillScreen(YELLOW);
  Nav1.setCursor(0,0);
  Nav1.setTextColor(CYAN,BLACK);
  Nav1.println(title);
  Nav2.createSprite(140,50);
  Nav2.setCursor(0,0);
  Nav2.setTextColor(WHITE,BLACK);
  if ((data>0) && (sign)){
    Nav2.print("+");
  }
  Nav2.println(data,precision);
  Nav1.pushSprite(x,y);
  Nav1.deleteSprite();
  Nav2.pushSprite(x+30,y);
  Nav2.deleteSprite();
}

// ************************************
// ****  Initialize SPIFFS memory  ****
// ************************************

void SPIFFSstart(){
  if (!SPIFFS.begin()){
    Serial.println("SPIFFS initialisation failed!");
    while (1) yield(); // Stay here twiddling thumbs waiting
    }
  Serial.println("\r\nInitialisation done.");
}

  
// ********************************************************
// ****  List files in ESP8266 or ESP32 SPIFFS memory  ****
// ********************************************************

void listFiles(void) {
  Serial.println();
  Serial.println("SPIFFS files found:");

#ifdef ESP32
  listDir(SPIFFS, "/", true);
#else
  fs::Dir dir = SPIFFS.openDir("/"); // Root directory
  String  line = "=====================================";

  Serial.println(line);
  Serial.println("  File name               Size");
  Serial.println(line);

  while (dir.next()) {
    String fileName = dir.fileName();
    Serial.print(fileName);
    int spaces = 25 - fileName.length(); // Tabulate nicely
    if (spaces < 0) spaces = 1;
    while (spaces--) Serial.print(" ");
    fs::File f = dir.openFile("r");
    Serial.print(f.size()); Serial.println(" bytes");
    yield();
  }

  Serial.println(line);
#endif
  Serial.println();
  delay(1000);
}

#ifdef ESP32
void listDir(fs::FS &fs, const char * dirname, uint8_t levels) {
  Serial.printf("Listing directory: %s\n", dirname);

  fs::File root = fs.open(dirname);
  if (!root) {
    Serial.println("Failed to open directory");
    return;
  }
  if (!root.isDirectory()) {
    Serial.println("Not a directory");
    return;
  }

  fs::File file = root.openNextFile();
  while (file) {

    if (file.isDirectory()) {
      Serial.print("DIR : ");
      String fileName = file.name();
      Serial.print(fileName);
      if (levels) {
        listDir(fs, file.name(), levels - 1);
      }
    } else {
      String fileName = file.name();
      Serial.print("  " + fileName);
      int spaces = 32 - fileName.length(); // Tabulate nicely
      if (spaces < 1) spaces = 1;
      while (spaces--) Serial.print(" ");
      String fileSize = (String) file.size();
      spaces = 8 - fileSize.length(); // Tabulate nicely
      if (spaces < 1) spaces = 1;
      while (spaces--) Serial.print(" ");
      Serial.println(fileSize + " bytes");
    }

    file = root.openNextFile();
  }
}
#endif

Ich hab noch andere Fragen zur Grafik, da mache ich aber sicher besser einen neuen Thread auf, oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Speicherprobleme auf dem ESP32 biologist 0 33 Heute 11:18
Letzter Beitrag: biologist
  ESP32 Upload ohne Bootknopf ?? wwilhelm 2 87 22.01.2020 19:40
Letzter Beitrag: wwilhelm
  ESP32 Firmware Anfänger Frage 1971 2 202 20.01.2020 12:25
Letzter Beitrag: 1971
  ESP32-WROVER-B OV2640 Starthilfe Falke07 17 414 19.01.2020 18:09
Letzter Beitrag: amithlon
  ESP32 Debugger JTAG shrimps 0 106 17.01.2020 11:43
Letzter Beitrag: shrimps
  ESP32 deepsleep Stromverbraucch Thomas_01 22 669 17.01.2020 08:21
Letzter Beitrag: derdemo
  ESP32 Grundlagen rdangel 5 620 14.01.2020 16:53
Letzter Beitrag: amithlon
  microSD Slot on Esp32 TechnikerHannes 29 1.742 14.01.2020 14:15
Letzter Beitrag: biologist
  Wetterstation ESP32 heli-freak66 3 331 05.01.2020 17:35
Letzter Beitrag: Tommy56
  ESP32 Uhr Cyborman 8 664 01.01.2020 22:43
Letzter Beitrag: Cyborman

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste