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.
Diff: main.cpp
- Revision:
- 6:ff641476ffe3
- Parent:
- 5:2d1980c7ca2d
- Child:
- 7:cccef81dc691
--- a/main.cpp Fri Apr 14 14:35:49 2017 +0200 +++ b/main.cpp Fri Apr 14 16:25:51 2017 +0200 @@ -1,4 +1,10 @@ #include "mbed.h" +#include "stm32l475e_iot01_tsensor.h" +#include "stm32l475e_iot01_hsensor.h" +#include "stm32l475e_iot01_psensor.h" +#include "stm32l475e_iot01_magneto.h" +#include "stm32l475e_iot01_gyro.h" +#include "stm32l475e_iot01_accelero.h" DigitalOut led1(LED1); DigitalOut led2(LED2); @@ -8,18 +14,61 @@ #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 LD3LD4_OFF {led3.input();} +#define LD3_OFF {led3.input();} #define LD4_ON {led3.output(); led3 = 0;} +#define LD4_OFF {led3.input();} // Select your demo -#define DEMO1_LEDS +//#define DEMO_TEMPERATURE_HUMIDITY_PRESSURE +#define DEMO_MAGNETO_GYRO_ACCELERO int main() { -#ifdef DEMO1_LEDS + +#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) { + 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]); + 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]); + 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]); + wait(2); + } +#else while(1) { LD1_ON; wait(0.5); @@ -33,10 +82,13 @@ wait(0.5); LD2_OFF; wait(0.5); - LD3LD4_OFF; + LD3_OFF; // LD4 is also OFF wait(0.5); + for(int i = 0; i < 10; i++) { + LD1_TOG; + LD2_TOG; + wait(0.2); + } } #endif - while(1) { - } }