SD card file helloworld demo using new mbed RTOS ver 5 file driver setup. Pins setup for LPC1768 - read comment in code about project's json file requirements for adding the SD filesystem driver
SD card r/w demo for mbed OS version 5 on LPC1768.
File drivers are added in json file with "target.components_add": ["SD"] for use in most recent OS 5 version.
Test messages are sent to serial port with printf's.
main.cpp@2:21d14147254e, 2019-09-24 (annotated)
- Committer:
- 4180_1
- Date:
- Tue Sep 24 18:16:27 2019 +0000
- Revision:
- 2:21d14147254e
- Parent:
- 1:3a59eb72e0cf
ver 1.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
4180_1 | 0:3588d7473dce | 1 | #include "mbed.h" |
4180_1 | 1:3a59eb72e0cf | 2 | // NOTE: Need "target.components_add": ["SD"] in json project file! |
4180_1 | 1:3a59eb72e0cf | 3 | // This adds the filesystem driver below for SD cards in a project |
4180_1 | 0:3588d7473dce | 4 | #include "SDBlockDevice.h" |
4180_1 | 0:3588d7473dce | 5 | #include "FATFileSystem.h" |
4180_1 | 1:3a59eb72e0cf | 6 | Serial pc(USBTX,USBRX); //change for your mbed serial port |
4180_1 | 0:3588d7473dce | 7 | SDBlockDevice sd(p5, p6, p7, p8); |
4180_1 | 0:3588d7473dce | 8 | FATFileSystem fs("SD"); |
4180_1 | 1:3a59eb72e0cf | 9 | char filereadchar=0; |
4180_1 | 1:3a59eb72e0cf | 10 | |
4180_1 | 1:3a59eb72e0cf | 11 | int main() |
4180_1 | 1:3a59eb72e0cf | 12 | { |
4180_1 | 0:3588d7473dce | 13 | sd.init(); |
4180_1 | 0:3588d7473dce | 14 | fs.mount(&sd); |
4180_1 | 1:3a59eb72e0cf | 15 | // open and write a message in a new file |
4180_1 | 1:3a59eb72e0cf | 16 | FILE* fw = fopen("/SD/hi.txt", "w"); |
4180_1 | 1:3a59eb72e0cf | 17 | if(fw == NULL) { |
4180_1 | 1:3a59eb72e0cf | 18 | error("Could not open new file for write\n\r"); |
4180_1 | 1:3a59eb72e0cf | 19 | } |
4180_1 | 1:3a59eb72e0cf | 20 | printf("Writing to SD file: hello SD Card!\n\r"); |
4180_1 | 1:3a59eb72e0cf | 21 | fprintf(fw, "hello SD card!\n\r"); |
4180_1 | 1:3a59eb72e0cf | 22 | fclose(fw); |
4180_1 | 1:3a59eb72e0cf | 23 | printf("\nFile closed for write\n\n\r"); |
4180_1 | 1:3a59eb72e0cf | 24 | // open and read back file characters to serial for test |
4180_1 | 1:3a59eb72e0cf | 25 | FILE* fr = fopen("/SD/hi.txt", "r"); |
4180_1 | 1:3a59eb72e0cf | 26 | if(fr == NULL) { |
4180_1 | 1:3a59eb72e0cf | 27 | error("Could not open new file for read\n\r"); |
4180_1 | 1:3a59eb72e0cf | 28 | } |
4180_1 | 1:3a59eb72e0cf | 29 | printf("Reading back from new file: "); |
4180_1 | 1:3a59eb72e0cf | 30 | while(fscanf(fr,"%c",&filereadchar) == 1) { |
4180_1 | 2:21d14147254e | 31 | printf("\%c",filereadchar); |
4180_1 | 1:3a59eb72e0cf | 32 | } |
4180_1 | 1:3a59eb72e0cf | 33 | fclose(fr); |
4180_1 | 0:3588d7473dce | 34 | sd.deinit(); |
4180_1 | 0:3588d7473dce | 35 | fs.unmount(); |
4180_1 | 1:3a59eb72e0cf | 36 | printf("\nSD demo complete\n\r"); |
4180_1 | 0:3588d7473dce | 37 | } |