DISCO-SensorsButton

Dependencies:   BSP_B-L475E-IOT01 mbed

Committer:
alessioburatti
Date:
Fri Nov 16 11:58:32 2018 +0000
Revision:
2:aa6968500d4e
Parent:
1:dce931d77528
Done

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lmottola 0:0cc3bd737dcb 1 #include "mbed.h"
lmottola 0:0cc3bd737dcb 2
alessioburatti 2:aa6968500d4e 3 // Sensors drivers present in the BSP library
lmottola 0:0cc3bd737dcb 4 #include "stm32l475e_iot01_tsensor.h"
lmottola 0:0cc3bd737dcb 5 #include "stm32l475e_iot01_hsensor.h"
lmottola 0:0cc3bd737dcb 6 #include "stm32l475e_iot01_psensor.h"
lmottola 0:0cc3bd737dcb 7 #include "stm32l475e_iot01_magneto.h"
lmottola 0:0cc3bd737dcb 8 #include "stm32l475e_iot01_gyro.h"
lmottola 0:0cc3bd737dcb 9 #include "stm32l475e_iot01_accelero.h"
lmottola 0:0cc3bd737dcb 10
alessioburatti 2:aa6968500d4e 11 #define STATE_TEMP 0
alessioburatti 2:aa6968500d4e 12 #define STATE_HUMIDITY 1
alessioburatti 2:aa6968500d4e 13 #define STATE_PRESSURE 2
alessioburatti 2:aa6968500d4e 14 #define STATE_MAGNETO 3
alessioburatti 2:aa6968500d4e 15 #define STATE_GYRO 4
alessioburatti 2:aa6968500d4e 16 #define STATE_ACCELERO 5
alessioburatti 2:aa6968500d4e 17 #define LAST_STATE 5
alessioburatti 2:aa6968500d4e 18
alessioburatti 2:aa6968500d4e 19 InterruptIn button(USER_BUTTON);
lmottola 0:0cc3bd737dcb 20 DigitalOut led(LED1);
lmottola 0:0cc3bd737dcb 21
alessioburatti 2:aa6968500d4e 22 static uint8_t state = 0;
alessioburatti 2:aa6968500d4e 23
alessioburatti 2:aa6968500d4e 24 void change_state()
alessioburatti 2:aa6968500d4e 25 {
alessioburatti 2:aa6968500d4e 26 if (state == LAST_STATE) {
alessioburatti 2:aa6968500d4e 27 state = STATE_TEMP;
alessioburatti 2:aa6968500d4e 28 } else {
alessioburatti 2:aa6968500d4e 29 state++;
alessioburatti 2:aa6968500d4e 30 }
alessioburatti 2:aa6968500d4e 31 }
alessioburatti 2:aa6968500d4e 32
lmottola 0:0cc3bd737dcb 33 int main()
lmottola 0:0cc3bd737dcb 34 {
alessioburatti 2:aa6968500d4e 35
alessioburatti 2:aa6968500d4e 36 button.rise(&change_state);
alessioburatti 2:aa6968500d4e 37
lmottola 0:0cc3bd737dcb 38 float sensor_value = 0;
lmottola 0:0cc3bd737dcb 39 int16_t pDataXYZ[3] = {0};
lmottola 0:0cc3bd737dcb 40 float pGyroDataXYZ[3] = {0};
alessioburatti 2:aa6968500d4e 41
lmottola 0:0cc3bd737dcb 42 BSP_TSENSOR_Init();
lmottola 0:0cc3bd737dcb 43 BSP_HSENSOR_Init();
lmottola 1:dce931d77528 44
lmottola 0:0cc3bd737dcb 45 BSP_PSENSOR_Init();
alessioburatti 2:aa6968500d4e 46
lmottola 0:0cc3bd737dcb 47 BSP_MAGNETO_Init();
lmottola 0:0cc3bd737dcb 48 BSP_GYRO_Init();
lmottola 0:0cc3bd737dcb 49 BSP_ACCELERO_Init();
alessioburatti 2:aa6968500d4e 50
lmottola 0:0cc3bd737dcb 51 while(1) {
alessioburatti 2:aa6968500d4e 52
lmottola 0:0cc3bd737dcb 53 led = 1;
alessioburatti 2:aa6968500d4e 54 wait(1);
alessioburatti 2:aa6968500d4e 55
alessioburatti 2:aa6968500d4e 56 switch (state) {
alessioburatti 2:aa6968500d4e 57 case STATE_TEMP:
alessioburatti 2:aa6968500d4e 58 sensor_value = BSP_TSENSOR_ReadTemp();
alessioburatti 2:aa6968500d4e 59 printf("\nTEMPERATURE = %.2f degC\n", sensor_value);
alessioburatti 2:aa6968500d4e 60 break;
alessioburatti 2:aa6968500d4e 61 case STATE_HUMIDITY:
alessioburatti 2:aa6968500d4e 62 sensor_value = BSP_HSENSOR_ReadHumidity();
alessioburatti 2:aa6968500d4e 63 printf("HUMIDITY = %.2f %%\n", sensor_value);
alessioburatti 2:aa6968500d4e 64 break;
alessioburatti 2:aa6968500d4e 65 case STATE_PRESSURE:
alessioburatti 2:aa6968500d4e 66 sensor_value = BSP_PSENSOR_ReadPressure();
alessioburatti 2:aa6968500d4e 67 printf("PRESSURE is = %.2f mBar\n", sensor_value);
alessioburatti 2:aa6968500d4e 68 break;
alessioburatti 2:aa6968500d4e 69 case STATE_MAGNETO:
alessioburatti 2:aa6968500d4e 70 BSP_MAGNETO_GetXYZ(pDataXYZ);
alessioburatti 2:aa6968500d4e 71 printf("\nMAGNETO_X = %d\n", pDataXYZ[0]);
alessioburatti 2:aa6968500d4e 72 printf("MAGNETO_Y = %d\n", pDataXYZ[1]);
alessioburatti 2:aa6968500d4e 73 printf("MAGNETO_Z = %d\n", pDataXYZ[2]);
alessioburatti 2:aa6968500d4e 74 break;
alessioburatti 2:aa6968500d4e 75 case STATE_GYRO:
alessioburatti 2:aa6968500d4e 76 BSP_GYRO_GetXYZ(pGyroDataXYZ);
alessioburatti 2:aa6968500d4e 77 printf("\nGYRO_X = %.2f\n", pGyroDataXYZ[0]);
alessioburatti 2:aa6968500d4e 78 printf("GYRO_Y = %.2f\n", pGyroDataXYZ[1]);
alessioburatti 2:aa6968500d4e 79 printf("GYRO_Z = %.2f\n", pGyroDataXYZ[2]);
alessioburatti 2:aa6968500d4e 80 break;
alessioburatti 2:aa6968500d4e 81 case STATE_ACCELERO:
alessioburatti 2:aa6968500d4e 82 BSP_ACCELERO_AccGetXYZ(pDataXYZ);
alessioburatti 2:aa6968500d4e 83 printf("\nACCELERO_X = %d\n", pDataXYZ[0]);
alessioburatti 2:aa6968500d4e 84 printf("ACCELERO_Y = %d\n", pDataXYZ[1]);
alessioburatti 2:aa6968500d4e 85 printf("ACCELERO_Z = %d\n", pDataXYZ[2]);
alessioburatti 2:aa6968500d4e 86 break;
alessioburatti 2:aa6968500d4e 87 }
alessioburatti 2:aa6968500d4e 88
lmottola 0:0cc3bd737dcb 89 led = 0;
lmottola 0:0cc3bd737dcb 90 wait(1);
lmottola 0:0cc3bd737dcb 91 }
lmottola 0:0cc3bd737dcb 92 }