SD на TFT (ili 9341) + mega 2560 r3 wifi esp8266

и пропал…

я по работе уезжал.

“…поставьте единичку вместо нуля…” я это ещё вчера делал. И сегодня тоже пробовал.
Результат:

c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'void Sd2Card::chipSelectHigh()':
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:182:5: error: 'SDCARD_SPI' was not declared in this scope
     SDCARD_SPI.endTransaction();
     ^~~~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:182:5: note: suggested alternative: 'SDA_PIN'
     SDCARD_SPI.endTransaction();
     ^~~~~~~~~~
     SDA_PIN
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'void Sd2Card::chipSelectLow()':
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:191:5: error: 'SDCARD_SPI' was not declared in this scope
     SDCARD_SPI.beginTransaction(settings);
     ^~~~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:191:5: note: suggested alternative: 'SDA_PIN'
     SDCARD_SPI.beginTransaction(settings);
     ^~~~~~~~~~
     SDA_PIN
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:191:33: error: 'settings' was not declared in this scope
     SDCARD_SPI.beginTransaction(settings);
                                 ^~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:191:33: note: suggested alternative: 'String'
     SDCARD_SPI.beginTransaction(settings);
                                 ^~~~~~~~
                                 String
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::init(uint8_t, uint8_t)':
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:290:3: error: 'SDCARD_SPI' was not declared in this scope
   SDCARD_SPI.beginTransaction(settings);
   ^~~~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:290:3: note: suggested alternative: 'SDA_PIN'
   SDCARD_SPI.beginTransaction(settings);
   ^~~~~~~~~~
   SDA_PIN
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:290:31: error: 'settings' was not declared in this scope
   SDCARD_SPI.beginTransaction(settings);
                               ^~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:290:31: note: suggested alternative: 'String'
   SDCARD_SPI.beginTransaction(settings);
                               ^~~~~~~~
                               String
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::setSckRate(uint8_t)':
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:552:14: error: 'settings' was not declared in this scope
     case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;
              ^~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:552:14: note: suggested alternative: 'String'
     case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;
              ^~~~~~~~
              String
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:552:57: error: 'SPI_MODE0' was not declared in this scope
     case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;
                                                         ^~~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:552:25: error: 'SPISettings' was not declared in this scope
     case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;
                         ^~~~~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::setSpiClock(uint32_t)':
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:567:3: error: 'settings' was not declared in this scope
   settings = SPISettings(clock, MSBFIRST, SPI_MODE0);
   ^~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:567:3: note: suggested alternative: 'String'
   settings = SPISettings(clock, MSBFIRST, SPI_MODE0);
   ^~~~~~~~
   String
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:567:43: error: 'SPI_MODE0' was not declared in this scope
   settings = SPISettings(clock, MSBFIRST, SPI_MODE0);
                                           ^~~~~~~~~
c:\Users\User\Documents\Arduino\libraries\SD\src\utility\Sd2Card.cpp:567:14: error: 'SPISettings' was not declared in this scope
   settings = SPISettings(clock, MSBFIRST, SPI_MODE0);
              ^~~~~~~~~~~

exit status 1

Compilation error: exit status 1

Я только поменял 0 на 1.

ок, значит экземпляр софтСПИ шины в библиотеке не создается, вы должны создать его сами.
Добавьте в начало кода

#include <SoftSPI.h>
SoftSPI mySPI(11, 12, 13);                     // MOSI,MISO,SCK

и в файле Sd2Card.cpp после 54 строки

#else  // SOFTWARE_SPI

добавьте

#ifndef SDCARD_SPI
    #define SDCARD_SPI mySPI
#endif

**** добавка
хотя наверно так тоже не заработает потому что идентификатор mySPI определен в скетче и библиотека про него не знает.
Надо еще добавить что-то типа

#include <SoftSPI.h>
extern SoftSPI mySPI(11, 12, 13);                     // MOSI,MISO,SCK

куда-нибудь в начало Sd2Card.h

Вообще на Ардуино.сс не советуют связываться с софтСПИ в библиотеке карты :slight_smile:

третья добавка даёт редефинишн

c:\Users\User\Documents\Arduino\libraries\SD\src/utility/Sd2Card.h:30:10: note: 'SoftSPI mySPI' previously declared here
  SoftSPI mySPI(11, 12, 13);
          ^~~~~

exit status 1

Compilation error: redefinition of 'SoftSPI mySPI'

“…Вообще на Ардуино.сс не советуют связываться с софтСПИ в библиотеке карты …”
короче: тянуть мне шлейф.

обратите внимание на ключевое слово extern, а у вас его нет

extern SoftSPI mySPI(11, 12, 13);  

Нет, в коде его нет (вы же сами его не написали)

#include <SPI.h>
#include <SD.h>
#include <SoftSPI.h>
SoftSPI mySPI(11, 12, 13); 

Sd2Card card;
SdVolume volume;
SdFile root;

const int chipSelect = 10;


void setup() {

  Serial.begin(115200);
  while (!Serial) {
    ; 
  }
  
  
  Serial.print("\nInitializing SD card...");

  if (!card.init(SPI_HALF_SPEED, chipSelect)) {
    Serial.println("initialization failed. Things to check:");
    while (1);
  } else {
    Serial.println("Wiring is correct and a card is present.");
  }

А вот в Sd2Card.h - есть

#ifndef Sd2Card_h
#define Sd2Card_h
/**
   \file
   Sd2Card class
*/
#include "Sd2PinMap.h"
#include "SdInfo.h"
#include <SoftSPI.h>
extern SoftSPI mySPI(11, 12, 13);

/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */
uint8_t const SPI_FULL_SPEED = 0;
/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */
uint8_t const SPI_HALF_SPEED = 1;
/** Set SCK rate to F_CPU/8. Sd2Card::setSckRate(). */
uint8_t const SPI_QUARTER_SPEED = 2;

Ошибка

C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved2023424-7800-zgbjzb.dp9mm\CardInfo\CardInfo.ino:4:21: error: redefinition of 'SoftSPI mySPI'
 extern SoftSPI mySPI(11, 12, 13);
                     ^
In file included from c:\Users\User\Documents\Arduino\libraries\SD\src/utility/SdFat.h:29:0,
                 from c:\Users\User\Documents\Arduino\libraries\SD\src/SD.h:20,
                 from C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved2023424-7800-zgbjzb.dp9mm\CardInfo\CardInfo.ino:2:
c:\Users\User\Documents\Arduino\libraries\SD\src/utility/Sd2Card.h:30:16: note: 'SoftSPI mySPI' previously declared here
 extern SoftSPI mySPI(11, 12, 13);
                ^~~~~

exit status 1

Compilation error: redefinition of 'SoftSPI mySPI'

в Sd2Card.h должно быть extern, а в скетче нет.

Судя по сообщениям об ошибках, в обоих случаях у вас не так.

Еще можно создание обьекта

SoftSPI mySPI(11, 12, 13);

вообще перенести в файл Sd2Card.cpp, раз уж мы все равно исходники либы кромсаем.
И тогда из скетча вообще все упоминания о софт-SPI убрать, пусть работает как будто это обычный SPI