STM32F401RE with ISK01A2 and MicroSD arduino shield

Dependencies:   mbed X_NUCLEO_IKS01A2

Files at this revision

API Documentation at this revision

Comitter:
berajay
Date:
Thu Oct 14 12:50:50 2021 +0000
Parent:
17:175f561f1a71
Commit message:
STM32F401RE

Changed in this revision

SDFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDFileSystem.lib	Thu Oct 14 12:50:50 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/berajay/code/STM32F401RE/#b987b963c3af
--- a/main.cpp	Wed Sep 27 15:48:21 2017 +0000
+++ b/main.cpp	Thu Oct 14 12:50:50 2021 +0000
@@ -39,6 +39,14 @@
 /* Includes */
 #include "mbed.h"
 #include "XNucleoIKS01A2.h"
+#include "SDFileSystem.h"
+#include "FATFileSystem.h"
+#include "iostream"
+
+Serial pc(USBTX, USBRX);
+// SDFileSystem sd(PA_7, PA_6, PA_5, PB_6, "sd"); // MOSI, MISO, SCK, CS
+SDFileSystem sd(D11, D12, D13, D10, "sd");// the pinout on the mbed Cool Components workshop board
+FILE *fp;
 
 /* Instantiate the expansion board */
 static XNucleoIKS01A2 *mems_expansion_board = XNucleoIKS01A2::instance(D14, D15, D4, D5);
@@ -113,32 +121,69 @@
   printf("LSM303AGR accelerometer           = 0x%X\r\n", id);
   acc_gyro->read_id(&id);
   printf("LSM6DSL accelerometer & gyroscope = 0x%X\r\n", id);
+  
+  pc.printf("Check SD\r\n");
+  mkdir("/sd/ISK01A2", 0777);
+  fp = fopen("/sd/ISK01A2/test.txt", "r");
+  if (fp != NULL) {
+        fclose(fp);
+        remove("/sd/test.txt");
+        pc.printf("Remove an existing file with the same name\r\n");
+    }
+    
+  fp = fopen("/sd/ISK01A2/test.txt", "w");
+  if (fp == NULL) {
+        error("Unable to write the file\r\n");
+    } /*else {
+        fprintf(fp, "mbed SDCard application!");
+        fclose(fp);
+        pc.printf("File successfully written!\r\n");
+    }*/
+ int n=0;
+ printf("SD ok, we can start");
+ fprintf(fp, " DATA of STM32F401RE with ISK01A2\r\n");
+ printf("\r\n");
  
-  while(1) {
+  while(n<60) {
+    
+    
+    printf("\r\n Number of cycle: %d \r\n", n);
     printf("\r\n");
-
+    fprintf(fp, "\r\n Number of cycle: %d \r\n", n);
+    fprintf(fp, "\r\n");
+    
     hum_temp->get_temperature(&value1);
     hum_temp->get_humidity(&value2);
-    printf("HTS221: [temp] %7s C,   [hum] %s%%\r\n", print_double(buffer1, value1), print_double(buffer2, value2));
+    printf("Temperature & Humidity: [temp] %7s C,   [hum] %s%%\r\n", print_double(buffer1, value1), print_double(buffer2, value2));
+    fprintf(fp, "Temperature & Humidity: [temp] %7s C,   [hum] %s%%\r\n", print_double(buffer1, value1), print_double(buffer2, value2));
     
     press_temp->get_temperature(&value1);
     press_temp->get_pressure(&value2);
-    printf("LPS22HB: [temp] %7s C, [press] %s mbar\r\n", print_double(buffer1, value1), print_double(buffer2, value2));
+    printf("Temperature & Pressure: [temp] %7s C, [press] %s mbar\r\n", print_double(buffer1, value1), print_double(buffer2, value2));
+    fprintf(fp, "Temperature & Pressure: [temp] %7s C, [press] %s mbar\r\n", print_double(buffer1, value1), print_double(buffer2, value2));
 
     printf("---\r\n");
+    fprintf(fp, "---\r\n");
 
     magnetometer->get_m_axes(axes);
-    printf("LSM303AGR [mag/mgauss]:  %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
+    printf("Magnetometer [mag/mgauss]:  %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
+    fprintf(fp,"Magnetometer [mag/mgauss]:  %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
     
     accelerometer->get_x_axes(axes);
-    printf("LSM303AGR [acc/mg]:  %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
+    printf("Accelerometer [acc/mg]:  %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
+    fprintf(fp, "Accelerometer [acc/mg]:  %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
 
     acc_gyro->get_x_axes(axes);
-    printf("LSM6DSL [acc/mg]:      %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
+    printf("Accelerometer & Gyroscope x [acc/mg]:      %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
+    fprintf(fp, "Accelerometer & Gyroscope x [acc/mg]:      %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
 
     acc_gyro->get_g_axes(axes);
-    printf("LSM6DSL [gyro/mdps]:   %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
-
-    wait(1.5);
+    printf("Accelerometer & Gyroscope g [gyro/mdps]:   %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
+    fprintf(fp, "Accelerometer & Gyroscope g [gyro/mdps]:   %6ld, %6ld, %6ld\r\n", axes[0], axes[1], axes[2]);
+    
+    n+=1;
+    wait(1);
   }
+  fclose(fp);
+  pc.printf("File successfully written!\r\n");
 }