Example of reading and writing text file in microSD card for DISCO-F746. DISCO-F746 で microSD カードのテキスト・ファイルの読み書きを行う例.

Dependencies:   BSP_DISCO_F746NG SDFileSystem_Warning_Fixed

Committer:
MikamiUitOpen
Date:
Sun Oct 09 10:11:14 2016 +0000
Revision:
0:3e46577dc273
Child:
1:7aa80a497ed2
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:3e46577dc273 1 //--------------------------------------------------------------
MikamiUitOpen 0:3e46577dc273 2 // SD カードのテキスト・ファイルの読み書きの例
MikamiUitOpen 0:3e46577dc273 3 //
MikamiUitOpen 0:3e46577dc273 4 // mount(), unmount() を使うことを除けば通常のテキストファイルの
MikamiUitOpen 0:3e46577dc273 5 // 読み書きと同じ.
MikamiUitOpen 0:3e46577dc273 6 //
MikamiUitOpen 0:3e46577dc273 7 // 2016/10/09, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 0:3e46577dc273 8 //--------------------------------------------------------------
MikamiUitOpen 0:3e46577dc273 9
MikamiUitOpen 0:3e46577dc273 10 #include "mbed.h"
MikamiUitOpen 0:3e46577dc273 11 #include "SDFileSystem.h" // SDFileSystem クラスを使うため
MikamiUitOpen 0:3e46577dc273 12
MikamiUitOpen 0:3e46577dc273 13 DigitalOut led_green(LED1);
MikamiUitOpen 0:3e46577dc273 14 SDFileSystem sd("sd"); // SDFileSystem: SD 用のクラス, 引数の文字列は任意
MikamiUitOpen 0:3e46577dc273 15
MikamiUitOpen 0:3e46577dc273 16 int main()
MikamiUitOpen 0:3e46577dc273 17 {
MikamiUitOpen 0:3e46577dc273 18 printf("\r\nSD Text file write/read test: started\r\n\n");
MikamiUitOpen 0:3e46577dc273 19
MikamiUitOpen 0:3e46577dc273 20 sd.mount(); // SD 用
MikamiUitOpen 0:3e46577dc273 21
MikamiUitOpen 0:3e46577dc273 22 // SD へ出力
MikamiUitOpen 0:3e46577dc273 23 FILE *fp = fopen("/sd/WriteReadTest.txt", "w");
MikamiUitOpen 0:3e46577dc273 24 if (fp == NULL)
MikamiUitOpen 0:3e46577dc273 25 {
MikamiUitOpen 0:3e46577dc273 26 fprintf(stderr, "Open error for writing!!\r\n");
MikamiUitOpen 0:3e46577dc273 27 while (true) {}
MikamiUitOpen 0:3e46577dc273 28 }
MikamiUitOpen 0:3e46577dc273 29
MikamiUitOpen 0:3e46577dc273 30 fprintf(fp, "Hello!\n");
MikamiUitOpen 0:3e46577dc273 31 fprintf(fp, "Example of writing and reading of text file.\n");
MikamiUitOpen 0:3e46577dc273 32 fclose(fp);
MikamiUitOpen 0:3e46577dc273 33
MikamiUitOpen 0:3e46577dc273 34 // SD から入力
MikamiUitOpen 0:3e46577dc273 35 fp = fopen("/sd/TestWrite.txt", "r");
MikamiUitOpen 0:3e46577dc273 36 if (fp == NULL)
MikamiUitOpen 0:3e46577dc273 37 {
MikamiUitOpen 0:3e46577dc273 38 fprintf(stderr, "Open error for reading!!\r\n");
MikamiUitOpen 0:3e46577dc273 39 while (true) {}
MikamiUitOpen 0:3e46577dc273 40 }
MikamiUitOpen 0:3e46577dc273 41
MikamiUitOpen 0:3e46577dc273 42 while (true)
MikamiUitOpen 0:3e46577dc273 43 {
MikamiUitOpen 0:3e46577dc273 44 int chr = fgetc(fp);
MikamiUitOpen 0:3e46577dc273 45 if (chr == EOF) break;
MikamiUitOpen 0:3e46577dc273 46 printf("%c", chr);
MikamiUitOpen 0:3e46577dc273 47 if (chr == '\n') printf("\r");
MikamiUitOpen 0:3e46577dc273 48 }
MikamiUitOpen 0:3e46577dc273 49 printf("\r\n");
MikamiUitOpen 0:3e46577dc273 50
MikamiUitOpen 0:3e46577dc273 51 fclose(fp);
MikamiUitOpen 0:3e46577dc273 52
MikamiUitOpen 0:3e46577dc273 53 sd.unmount(); // SD 用
MikamiUitOpen 0:3e46577dc273 54
MikamiUitOpen 0:3e46577dc273 55 while(true)
MikamiUitOpen 0:3e46577dc273 56 {
MikamiUitOpen 0:3e46577dc273 57 led_green = !led_green;
MikamiUitOpen 0:3e46577dc273 58 wait(0.2f);
MikamiUitOpen 0:3e46577dc273 59 }
MikamiUitOpen 0:3e46577dc273 60 }