Read board sensors (temperature, humidity, pressure, gyroscope, accelerometer, magnetometer) using ST BSP drivers. This example is superceded with the HelloWorld_ST_Sensors example.

Dependencies:   BSP_B-L475E-IOT01

Information

This example is superceded with the HelloWorld_ST_Sensors example.

Import programHelloWorld_ST_Sensors

Simple application to test ST motion and environmental MEMS sensors. Supports NUCLEO+X-NUCLEO-IKS01A2 , STEVAL-STLKT01V1 (a.k.a. SensorTile) and B-L475E-IOT01A boards.

Revision:
10:0964ad447861
Parent:
7:cccef81dc691
Child:
11:986c1f5db128
--- a/main.cpp	Fri Jun 09 13:07:36 2017 +0000
+++ b/main.cpp	Thu Jul 06 09:58:14 2017 +0000
@@ -1,4 +1,6 @@
 #include "mbed.h"
+
+// Sensors drivers present in the BSP library
 #include "stm32l475e_iot01_tsensor.h"
 #include "stm32l475e_iot01_hsensor.h"
 #include "stm32l475e_iot01_psensor.h"
@@ -7,91 +9,58 @@
 #include "stm32l475e_iot01_accelero.h"
 
 DigitalOut led1(LED1);
-DigitalOut led2(LED2);
-// This object drives both LD3 and LD4 on the board.
-// Only one of these LEDs can be driven at a time.
-DigitalInOut led3(LED3);
-
-#define LD1_ON     {led1 = 1;}
-#define LD1_OFF    {led1 = 0;}
-#define LD1_TOG    {led1 = !led1;}
-#define LD2_ON     {led2 = 1;}
-#define LD2_OFF    {led2 = 0;}
-#define LD2_TOG    {led2 = !led2;}
-#define LD3_ON     {led3.output(); led3 = 1;}
-#define LD3_OFF    {led3.input();}
-#define LD4_ON     {led3.output(); led3 = 0;}
-#define LD4_OFF    {led3.input();}
-
-// Select your demo
-//#define DEMO_TEMPERATURE_HUMIDITY_PRESSURE
-#define DEMO_MAGNETO_GYRO_ACCELERO
 
 int main()
 {
+    float sensor_value = 0;
+    int16_t pDataXYZ[3] = {0};
+    float pGyroDataXYZ[3] = {0};
 
-#if defined(DEMO_TEMPERATURE_HUMIDITY_PRESSURE)
-    float sensor_value = 0;
     BSP_TSENSOR_Init();
     BSP_HSENSOR_Init();
     BSP_PSENSOR_Init();
-    while(1) {
-        sensor_value = BSP_TSENSOR_ReadTemp();
-        printf("\nTEMPERATURE = %.2f degC\n", sensor_value);
-        sensor_value = BSP_HSENSOR_ReadHumidity();
-        printf("HUMIDITY    = %.2f %\n", sensor_value);
-        sensor_value = BSP_PSENSOR_ReadPressure();
-        printf("PRESSURE is = %.2f mBar\n", sensor_value);
-        led1 = !led1;
-        wait(2);
-    }
-#elif defined(DEMO_MAGNETO_GYRO_ACCELERO)
-    int16_t pDataXYZ[3] = {0};
-    float pGyroDataXYZ[3] = {0};
+
     BSP_MAGNETO_Init();
     BSP_GYRO_Init();
     BSP_ACCELERO_Init();
+
     while(1) {
+
+        led1 = 1;
+
+        sensor_value = BSP_TSENSOR_ReadTemp();
+        printf("\nTEMPERATURE = %.2f degC\n", sensor_value);
+
+        sensor_value = BSP_HSENSOR_ReadHumidity();
+        printf("HUMIDITY    = %.2f %%\n", sensor_value);
+
+        sensor_value = BSP_PSENSOR_ReadPressure();
+        printf("PRESSURE is = %.2f mBar\n", sensor_value);
+
+        led1 = 0;
+
+        wait(1);
+
+        led1 = 1;
+
         BSP_MAGNETO_GetXYZ(pDataXYZ);
         printf("\nMAGNETO_X = %d\n", pDataXYZ[0]);
         printf("MAGNETO_Y = %d\n", pDataXYZ[1]);
         printf("MAGNETO_Z = %d\n", pDataXYZ[2]);
-        led1 = !led1;
-        wait(2);
+
         BSP_GYRO_GetXYZ(pGyroDataXYZ);
         printf("\nGYRO_X = %.2f\n", pGyroDataXYZ[0]);
         printf("GYRO_Y = %.2f\n", pGyroDataXYZ[1]);
         printf("GYRO_Z = %.2f\n", pGyroDataXYZ[2]);
-        led1 = !led1;
-        wait(2);
+
         BSP_ACCELERO_AccGetXYZ(pDataXYZ);
         printf("\nACCELERO_X = %d\n", pDataXYZ[0]);
         printf("ACCELERO_Y = %d\n", pDataXYZ[1]);
         printf("ACCELERO_Z = %d\n", pDataXYZ[2]);
-        led1 = !led1;
-        wait(2);
+
+        led1 = 0;
+
+        wait(1);
+
     }
-#else
-    while(1) {
-        LD1_ON;
-        wait(0.5);
-        LD2_ON;
-        wait(0.5);
-        LD3_ON;
-        wait(0.5);
-        LD4_ON;
-        wait(0.5);
-        LD1_OFF;
-        wait(0.5);
-        LD2_OFF;
-        wait(0.5);
-        LD3_OFF; // LD4 is also OFF
-        wait(0.5);
-        for(int i = 0; i < 10; i++) {
-            LD1_TOG;
-            LD2_TOG;
-            wait(0.2);
-        }
-    }
-#endif
 }