Example for reading and writing SD card using SPI mode.

Dependencies:   mbed

Fork of Demo_NucleoF4xx_SD_Card by 不韋 呂

Revision:
0:08b4a59451e5
Child:
1:640ebf433b62
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Nov 13 11:37:35 2016 +0000
@@ -0,0 +1,57 @@
+//--------------------------------------------------------------
+//  SD カード書き込み,読み出しの例
+//      インターフェース:SPI モード使用
+//
+//  このプログラムが STM32F446RE で動作するライブラリのリビジョン:
+//      SDFileSystem      3,      4 ~ 6 では正常に動かない
+//      FATFileSystem     3,      4 ~ 9 では正常に動かない
+//      mbed            121,    122 ~ 128 では正常に動かない
+//  調べた時点での mbed ライブラリの最新版:128
+//
+//  fprintf() で,文字列に日本語を使っているため,コンパイル時に
+//  警告が出るが,無視しても問題はない
+//
+//  2016/11/13, 三上 直樹
+//--------------------------------------------------------------
+
+#include "mbed.h"
+#include "SDFileSystem.h"
+
+//SDFileSystem sd_(D11, D12, D13, D10, "sd"); // MOSI, MISO, SCK, CS: SPI1
+SDFileSystem sd_(D4, D5, D3, D2, "sd");     // MOSI, MISO, SCK, CS: SPI3
+Serial pc_(USBTX, USBRX);
+
+int main() {
+    pc_.baud(9600);
+    pc_.printf("\r\nInitializing\r\n");
+
+    // 書き込みのテスト
+    pc_.printf("\nWriting to SD card...: ");
+    FILE *fp = fopen("/sd/sdtest.txt", "a+");   // 追加書き込み
+    
+    if (fp != NULL)
+    {
+        fprintf(fp, "SD カードのテストです.\r\n");
+        fclose(fp);
+        pc_.printf("success!\r\n");
+    }
+    else
+        pc_.printf("failed!\r\n");
+ 
+    // 読み出しのテスト
+    pc_.printf("Reading from SD card...:\r\n");
+    fp = fopen("/sd/sdtest.txt", "r");
+    if (fp != NULL)
+    {
+        char str[256];
+        while (fgets(str, 256, fp) != NULL)
+            pc_.printf("%s", str);
+        
+        fclose(fp);
+        pc_.printf("success!\r\n");
+    }
+    else
+        pc_.printf("failed!\r\n");
+ 
+    while (true) {}
+}