stm32nucleof401re_04_sdcard
Dependencies: mbed-os
main.cpp@0:ad67c66b2e84, 2020-02-07 (annotated)
- Committer:
- perlatecnica
- Date:
- Fri Feb 07 07:25:23 2020 +0000
- Revision:
- 0:ad67c66b2e84
v1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
perlatecnica | 0:ad67c66b2e84 | 1 | /* Copyright (c) 2019 Perlatecnica |
perlatecnica | 0:ad67c66b2e84 | 2 | * |
perlatecnica | 0:ad67c66b2e84 | 3 | * Licensed under the Apache License, Version 2.0 (the "License"); |
perlatecnica | 0:ad67c66b2e84 | 4 | * you may not use this file except in compliance with the License. |
perlatecnica | 0:ad67c66b2e84 | 5 | * You may obtain a copy of the License at |
perlatecnica | 0:ad67c66b2e84 | 6 | * |
perlatecnica | 0:ad67c66b2e84 | 7 | * http://www.apache.org/licenses/LICENSE-2.0 |
perlatecnica | 0:ad67c66b2e84 | 8 | * |
perlatecnica | 0:ad67c66b2e84 | 9 | * Unless required by applicable law or agreed to in writing, software |
perlatecnica | 0:ad67c66b2e84 | 10 | * distributed under the License is distributed on an "AS IS" BASIS, |
perlatecnica | 0:ad67c66b2e84 | 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
perlatecnica | 0:ad67c66b2e84 | 12 | * See the License for the specific language governing permissions and |
perlatecnica | 0:ad67c66b2e84 | 13 | * limitations under the License. |
perlatecnica | 0:ad67c66b2e84 | 14 | */ |
perlatecnica | 0:ad67c66b2e84 | 15 | |
perlatecnica | 0:ad67c66b2e84 | 16 | /**************************************************** |
perlatecnica | 0:ad67c66b2e84 | 17 | * FAST PROTOTYPING WITH NUCLEO * |
perlatecnica | 0:ad67c66b2e84 | 18 | * Example Code 04: SDcard * |
perlatecnica | 0:ad67c66b2e84 | 19 | * Author: Mauro D'Angelo * |
perlatecnica | 0:ad67c66b2e84 | 20 | * Organization: Perlatecnica no-profit organization * |
perlatecnica | 0:ad67c66b2e84 | 21 | *****************************************************/ |
perlatecnica | 0:ad67c66b2e84 | 22 | |
perlatecnica | 0:ad67c66b2e84 | 23 | #include "mbed.h" |
perlatecnica | 0:ad67c66b2e84 | 24 | |
perlatecnica | 0:ad67c66b2e84 | 25 | // It includes the library that manages the File System |
perlatecnica | 0:ad67c66b2e84 | 26 | #include "FATFileSystem.h" |
perlatecnica | 0:ad67c66b2e84 | 27 | |
perlatecnica | 0:ad67c66b2e84 | 28 | // It Includes the library that manage the SD at low level |
perlatecnica | 0:ad67c66b2e84 | 29 | #include "SDBlockDevice.h" |
perlatecnica | 0:ad67c66b2e84 | 30 | |
perlatecnica | 0:ad67c66b2e84 | 31 | // It creates the File System variable |
perlatecnica | 0:ad67c66b2e84 | 32 | FATFileSystem fs("fs"); |
perlatecnica | 0:ad67c66b2e84 | 33 | |
perlatecnica | 0:ad67c66b2e84 | 34 | // it creates the reference to SD. The parameters are the pin for SPI bus |
perlatecnica | 0:ad67c66b2e84 | 35 | SDBlockDevice sd(D11, D12, D13, D10); //MOSI MISO SCK CS |
perlatecnica | 0:ad67c66b2e84 | 36 | |
perlatecnica | 0:ad67c66b2e84 | 37 | Serial pc(USBTX, USBRX); |
perlatecnica | 0:ad67c66b2e84 | 38 | |
perlatecnica | 0:ad67c66b2e84 | 39 | int main() { |
perlatecnica | 0:ad67c66b2e84 | 40 | // It mounts the SD. |
perlatecnica | 0:ad67c66b2e84 | 41 | fs.mount(&sd); |
perlatecnica | 0:ad67c66b2e84 | 42 | |
perlatecnica | 0:ad67c66b2e84 | 43 | // It opens the file mbed.txt. 'w' represents the access rights |
perlatecnica | 0:ad67c66b2e84 | 44 | FILE *fd = fopen("/fs/mbed.txt", "w"); |
perlatecnica | 0:ad67c66b2e84 | 45 | |
perlatecnica | 0:ad67c66b2e84 | 46 | if(fd==NULL) { |
perlatecnica | 0:ad67c66b2e84 | 47 | // Something was wrong |
perlatecnica | 0:ad67c66b2e84 | 48 | pc.printf("Error occurs writing the SD!\r\n"); |
perlatecnica | 0:ad67c66b2e84 | 49 | } |
perlatecnica | 0:ad67c66b2e84 | 50 | else { |
perlatecnica | 0:ad67c66b2e84 | 51 | fprintf(fd, "Welcome SD!!\r\n"); |
perlatecnica | 0:ad67c66b2e84 | 52 | fclose(fd); |
perlatecnica | 0:ad67c66b2e84 | 53 | pc.printf("It works!\r\n"); |
perlatecnica | 0:ad67c66b2e84 | 54 | } |
perlatecnica | 0:ad67c66b2e84 | 55 | } |