Add SD card example for Black F407VE

This commit is contained in:
Daniel Fekete 2017-04-22 08:36:26 +02:00
parent fee81d692a
commit 69b588328e
2 changed files with 106 additions and 0 deletions

View File

@ -0,0 +1,68 @@
// 1. Install SdFat-beta from https://github.com/greiman/SdFat-beta
// 2. In SdFatConfig.h, Change ENABLE_SDIO_CLASS 0 to 1
#include "Arduino.h"
#include "SDIO.h"
#include "STM32SdFatSdio.h"
STM32SdFatSdio sd;
void setup() {
Serial.begin(115200);
for(int i=0; i<5; i++) {
delay(1000);
Serial.print(".");
}
}
void loop() {
Serial.println("Starting");
delay(1000);
if (!sd.begin()) {
Serial.println("Card error");
return;
}
///////////////
Serial.println("LS:");
sd.ls(LS_R | LS_DATE | LS_SIZE);
///////////////
File file;
Serial.println("Writing:");
file = sd.open("test.txt", FILE_WRITE);
if (file) {
file.print("Testing write\n");
file.close();
} else {
Serial.print("Error opening file");
}
///////////////
Serial.println("Reading:");
file = sd.open("test.txt");
if (file) {
while (file.available()) {
Serial.write(file.read());
}
file.close();
} else {
Serial.print("Error opening file");
}
///////////////
for(int i=0; i<5; i++) {
delay(1000);
Serial.print(".");
}
Serial.println();
}

View File

@ -0,0 +1,38 @@
#ifndef _STM32_SDFAT_H_INCLUDED
#define _STM32_SDFAT_H_INCLUDED
#include "SdFat.h"
#include "SDIO.h"
class Stm32SdioCard : public BaseBlockDriver {
public:
bool begin() {
return sdio.begin();
}
bool syncBlocks() {
return true;
}
bool readBlock(uint32_t block, uint8_t* dst) {
return sdio.readBlocks(block, dst, 1);
};
bool writeBlock(uint32_t block, const uint8_t* src) {
return sdio.writeBlocks(block, src, 1);
};
bool readBlocks(uint32_t block, uint8_t* dst, size_t nb) {
return sdio.readBlocks(block, dst, nb);
};
bool writeBlocks(uint32_t block, const uint8_t* src, size_t nb) {
return sdio.writeBlocks(block, src, nb);
};
private:
SDIOClass sdio;
};
class STM32SdFatSdio : public SdFileSystem<Stm32SdioCard> {
public:
bool begin() {
return m_card.begin() && SdFileSystem::begin();
}
};
#endif