- Gate capture on SD_IsReady() after successful SD_Init; avoid false 'insert SD' when SD.cardType() lies after WiFi on shared SPI with LCD - SD_Init: LCD CS high, SD.end() on empty card; HandshakeCapture save path retries SD_Init before discard - FAT filename sanitize, discard deadlocks, WPA3 scan labels, docs (README, PRODUCTION, IMPROVEMENTS), firmware version 1.0.1 Made-with: Cursor
31 lines
654 B
C++
31 lines
654 B
C++
#include "SD_Card.h"
|
|
#include "Display_ST7789.h"
|
|
|
|
uint16_t SDCard_Size = 0;
|
|
static bool g_sd_ready = false;
|
|
|
|
bool SD_IsReady() {
|
|
return g_sd_ready;
|
|
}
|
|
|
|
bool SD_Init() {
|
|
g_sd_ready = false;
|
|
pinMode(SD_CS, OUTPUT);
|
|
digitalWrite(SD_CS, HIGH);
|
|
// Shared SPI with ST7789: ensure display CS idle so SD sees a clean bus.
|
|
digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH);
|
|
|
|
if (!SD.begin(SD_CS, SPI)) {
|
|
Serial.println("SD init failed");
|
|
return false;
|
|
}
|
|
if (SD.cardType() == CARD_NONE) {
|
|
Serial.println("No SD card");
|
|
SD.end();
|
|
return false;
|
|
}
|
|
g_sd_ready = true;
|
|
SDCard_Size = SD.totalBytes() / (1024 * 1024);
|
|
return true;
|
|
}
|