Example of reading and writing text file in microSD card for DISCO-F746. DISCO-F746 で microSD カードのテキスト・ファイルの読み書きを行う例.
Dependencies: BSP_DISCO_F746NG SDFileSystem_Warning_Fixed
main.cpp@0:3e46577dc273, 2016-10-09 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sun Oct 09 10:11:14 2016 +0000
- Revision:
- 0:3e46577dc273
- Child:
- 1:7aa80a497ed2
1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |