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:
Wed Nov 02 03:21:08 2016 +0000
Revision:
1:7aa80a497ed2
Parent:
0:3e46577dc273
Child:
2:0705bf3a3e1e
2

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 1:7aa80a497ed2 7 // 2016/11/02, 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 1:7aa80a497ed2 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 1:7aa80a497ed2 34 // SD から読み出し
MikamiUitOpen 1:7aa80a497ed2 35 fp = fopen("/sd/WriteReadTest.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 1:7aa80a497ed2 41
MikamiUitOpen 1:7aa80a497ed2 42 printf("String in read file is as follows:\r\n");
MikamiUitOpen 0:3e46577dc273 43
MikamiUitOpen 0:3e46577dc273 44 while (true)
MikamiUitOpen 0:3e46577dc273 45 {
MikamiUitOpen 0:3e46577dc273 46 int chr = fgetc(fp);
MikamiUitOpen 0:3e46577dc273 47 if (chr == EOF) break;
MikamiUitOpen 0:3e46577dc273 48 printf("%c", chr);
MikamiUitOpen 0:3e46577dc273 49 if (chr == '\n') printf("\r");
MikamiUitOpen 0:3e46577dc273 50 }
MikamiUitOpen 0:3e46577dc273 51 printf("\r\n");
MikamiUitOpen 0:3e46577dc273 52
MikamiUitOpen 0:3e46577dc273 53 fclose(fp);
MikamiUitOpen 0:3e46577dc273 54
MikamiUitOpen 0:3e46577dc273 55 sd.unmount(); // SD 用
MikamiUitOpen 0:3e46577dc273 56
MikamiUitOpen 0:3e46577dc273 57 while(true)
MikamiUitOpen 0:3e46577dc273 58 {
MikamiUitOpen 0:3e46577dc273 59 led_green = !led_green;
MikamiUitOpen 0:3e46577dc273 60 wait(0.2f);
MikamiUitOpen 0:3e46577dc273 61 }
MikamiUitOpen 0:3e46577dc273 62 }