test µSD

Dependencies:   SD_DISCO_F469NI BSP_DISCO_F469NI BD_SD_DISCO_F469NI USBHOST

Committer:
roykrikke
Date:
Sat Mar 24 19:11:15 2018 +0000
Revision:
0:4cdf28a602a8
Child:
1:ffacc9d0b308
First release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
roykrikke 0:4cdf28a602a8 1 #include "mbed.h"
roykrikke 0:4cdf28a602a8 2 #include "BD_SD_DISCO_F746NG.h"
roykrikke 0:4cdf28a602a8 3
roykrikke 0:4cdf28a602a8 4 DigitalOut led (LED1);
roykrikke 0:4cdf28a602a8 5
roykrikke 0:4cdf28a602a8 6 // Instantiate the Block Device for sd card on DISCO-F746NG
roykrikke 0:4cdf28a602a8 7 BD_SD_DISCO_F746NG bd;
roykrikke 0:4cdf28a602a8 8 uint8_t block[512] = "Hello World!\n";
roykrikke 0:4cdf28a602a8 9
roykrikke 0:4cdf28a602a8 10 int
roykrikke 0:4cdf28a602a8 11 main () {
roykrikke 0:4cdf28a602a8 12 Serial pc (SERIAL_TX, SERIAL_RX);
roykrikke 0:4cdf28a602a8 13 pc.baud (115200);
roykrikke 0:4cdf28a602a8 14 printf ("Start\n");
roykrikke 0:4cdf28a602a8 15
roykrikke 0:4cdf28a602a8 16 // Call the BD_SD_DISCO_F746NG instance initialisation method.
roykrikke 0:4cdf28a602a8 17 printf ("sd card init...\n");
roykrikke 0:4cdf28a602a8 18 if (0 != bd.init ()) {
roykrikke 0:4cdf28a602a8 19 printf ("Init failed \n");
roykrikke 0:4cdf28a602a8 20 return -1;
roykrikke 0:4cdf28a602a8 21 }
roykrikke 0:4cdf28a602a8 22
roykrikke 0:4cdf28a602a8 23 printf ("sd size: %llu\n", bd.size ());
roykrikke 0:4cdf28a602a8 24 printf ("sd read size: %llu\n", bd.get_read_size ());
roykrikke 0:4cdf28a602a8 25 printf ("sd program size: %llu\n", bd.get_program_size ());
roykrikke 0:4cdf28a602a8 26 printf ("sd erase size: %llu\n\n", bd.get_erase_size ());
roykrikke 0:4cdf28a602a8 27
roykrikke 0:4cdf28a602a8 28 printf ("sd erase...\n");
roykrikke 0:4cdf28a602a8 29 if (0 != bd.erase (0, bd.get_erase_size ())) {
roykrikke 0:4cdf28a602a8 30 printf ("Error Erasing block \n");
roykrikke 0:4cdf28a602a8 31 }
roykrikke 0:4cdf28a602a8 32
roykrikke 0:4cdf28a602a8 33 // Write some the data block to the device
roykrikke 0:4cdf28a602a8 34 printf ("sd write: %s\n", block);
roykrikke 0:4cdf28a602a8 35 if (0 == bd.program (block, 0, 512)) {
roykrikke 0:4cdf28a602a8 36 // read the data block from the device
roykrikke 0:4cdf28a602a8 37 printf ("sd read: ");
roykrikke 0:4cdf28a602a8 38 if (0 == bd.read (block, 0, 512)) {
roykrikke 0:4cdf28a602a8 39 // print the contents of the block
roykrikke 0:4cdf28a602a8 40 printf ("%s", block);
roykrikke 0:4cdf28a602a8 41 }
roykrikke 0:4cdf28a602a8 42 }
roykrikke 0:4cdf28a602a8 43
roykrikke 0:4cdf28a602a8 44 // Call the BD_SD_DISCO_F746NG instance de-initialisation method.
roykrikke 0:4cdf28a602a8 45 printf ("sd card deinit...\n");
roykrikke 0:4cdf28a602a8 46 if (0 != bd.deinit ()) {
roykrikke 0:4cdf28a602a8 47 printf ("Deinit failed \n");
roykrikke 0:4cdf28a602a8 48 return -1;
roykrikke 0:4cdf28a602a8 49 }
roykrikke 0:4cdf28a602a8 50
roykrikke 0:4cdf28a602a8 51 // Blink led with 2 Hz
roykrikke 0:4cdf28a602a8 52 while (true) {
roykrikke 0:4cdf28a602a8 53 led = !led;
roykrikke 0:4cdf28a602a8 54 wait (0.5);
roykrikke 0:4cdf28a602a8 55 }
roykrikke 0:4cdf28a602a8 56 }