Timóteo Mendes
/
SD_read_write_copy
this one works ok
Fork of Demo_NucleoF4xx_SD_Card by
main.cpp@0:08b4a59451e5, 2016-11-13 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sun Nov 13 11:37:35 2016 +0000
- Revision:
- 0:08b4a59451e5
- Child:
- 1:3e844e5b805c
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:08b4a59451e5 | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:08b4a59451e5 | 2 | // SD カード書き込み,読み出しの例 |
MikamiUitOpen | 0:08b4a59451e5 | 3 | // インターフェース:SPI モード使用 |
MikamiUitOpen | 0:08b4a59451e5 | 4 | // |
MikamiUitOpen | 0:08b4a59451e5 | 5 | // このプログラムが STM32F446RE で動作するライブラリのリビジョン: |
MikamiUitOpen | 0:08b4a59451e5 | 6 | // SDFileSystem 3, 4 ~ 6 では正常に動かない |
MikamiUitOpen | 0:08b4a59451e5 | 7 | // FATFileSystem 3, 4 ~ 9 では正常に動かない |
MikamiUitOpen | 0:08b4a59451e5 | 8 | // mbed 121, 122 ~ 128 では正常に動かない |
MikamiUitOpen | 0:08b4a59451e5 | 9 | // 調べた時点での mbed ライブラリの最新版:128 |
MikamiUitOpen | 0:08b4a59451e5 | 10 | // |
MikamiUitOpen | 0:08b4a59451e5 | 11 | // fprintf() で,文字列に日本語を使っているため,コンパイル時に |
MikamiUitOpen | 0:08b4a59451e5 | 12 | // 警告が出るが,無視しても問題はない |
MikamiUitOpen | 0:08b4a59451e5 | 13 | // |
MikamiUitOpen | 0:08b4a59451e5 | 14 | // 2016/11/13, 三上 直樹 |
MikamiUitOpen | 0:08b4a59451e5 | 15 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:08b4a59451e5 | 16 | |
MikamiUitOpen | 0:08b4a59451e5 | 17 | #include "mbed.h" |
MikamiUitOpen | 0:08b4a59451e5 | 18 | #include "SDFileSystem.h" |
MikamiUitOpen | 0:08b4a59451e5 | 19 | |
MikamiUitOpen | 0:08b4a59451e5 | 20 | //SDFileSystem sd_(D11, D12, D13, D10, "sd"); // MOSI, MISO, SCK, CS: SPI1 |
MikamiUitOpen | 0:08b4a59451e5 | 21 | SDFileSystem sd_(D4, D5, D3, D2, "sd"); // MOSI, MISO, SCK, CS: SPI3 |
MikamiUitOpen | 0:08b4a59451e5 | 22 | Serial pc_(USBTX, USBRX); |
MikamiUitOpen | 0:08b4a59451e5 | 23 | |
MikamiUitOpen | 0:08b4a59451e5 | 24 | int main() { |
MikamiUitOpen | 0:08b4a59451e5 | 25 | pc_.baud(9600); |
MikamiUitOpen | 0:08b4a59451e5 | 26 | pc_.printf("\r\nInitializing\r\n"); |
MikamiUitOpen | 0:08b4a59451e5 | 27 | |
MikamiUitOpen | 0:08b4a59451e5 | 28 | // 書き込みのテスト |
MikamiUitOpen | 0:08b4a59451e5 | 29 | pc_.printf("\nWriting to SD card...: "); |
MikamiUitOpen | 0:08b4a59451e5 | 30 | FILE *fp = fopen("/sd/sdtest.txt", "a+"); // 追加書き込み |
MikamiUitOpen | 0:08b4a59451e5 | 31 | |
MikamiUitOpen | 0:08b4a59451e5 | 32 | if (fp != NULL) |
MikamiUitOpen | 0:08b4a59451e5 | 33 | { |
MikamiUitOpen | 0:08b4a59451e5 | 34 | fprintf(fp, "SD カードのテストです.\r\n"); |
MikamiUitOpen | 0:08b4a59451e5 | 35 | fclose(fp); |
MikamiUitOpen | 0:08b4a59451e5 | 36 | pc_.printf("success!\r\n"); |
MikamiUitOpen | 0:08b4a59451e5 | 37 | } |
MikamiUitOpen | 0:08b4a59451e5 | 38 | else |
MikamiUitOpen | 0:08b4a59451e5 | 39 | pc_.printf("failed!\r\n"); |
MikamiUitOpen | 0:08b4a59451e5 | 40 | |
MikamiUitOpen | 0:08b4a59451e5 | 41 | // 読み出しのテスト |
MikamiUitOpen | 0:08b4a59451e5 | 42 | pc_.printf("Reading from SD card...:\r\n"); |
MikamiUitOpen | 0:08b4a59451e5 | 43 | fp = fopen("/sd/sdtest.txt", "r"); |
MikamiUitOpen | 0:08b4a59451e5 | 44 | if (fp != NULL) |
MikamiUitOpen | 0:08b4a59451e5 | 45 | { |
MikamiUitOpen | 0:08b4a59451e5 | 46 | char str[256]; |
MikamiUitOpen | 0:08b4a59451e5 | 47 | while (fgets(str, 256, fp) != NULL) |
MikamiUitOpen | 0:08b4a59451e5 | 48 | pc_.printf("%s", str); |
MikamiUitOpen | 0:08b4a59451e5 | 49 | |
MikamiUitOpen | 0:08b4a59451e5 | 50 | fclose(fp); |
MikamiUitOpen | 0:08b4a59451e5 | 51 | pc_.printf("success!\r\n"); |
MikamiUitOpen | 0:08b4a59451e5 | 52 | } |
MikamiUitOpen | 0:08b4a59451e5 | 53 | else |
MikamiUitOpen | 0:08b4a59451e5 | 54 | pc_.printf("failed!\r\n"); |
MikamiUitOpen | 0:08b4a59451e5 | 55 | |
MikamiUitOpen | 0:08b4a59451e5 | 56 | while (true) {} |
MikamiUitOpen | 0:08b4a59451e5 | 57 | } |