simple stm32f407 discovery board mbed demo

Dependencies:   LIS3DSH mbed

explanation here https://youtu.be/S4V5B7kTqII

Committer:
programmer5
Date:
Wed Jan 17 17:17:29 2018 +0000
Revision:
0:4650fee31cf1
first commit of stm32f407 discovery kit MBED demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
programmer5 0:4650fee31cf1 1 #include "mbed.h"
programmer5 0:4650fee31cf1 2 #include "LIS3DSH.h"
programmer5 0:4650fee31cf1 3 DigitalOut myledG(PD_12);
programmer5 0:4650fee31cf1 4 DigitalOut myledO(PD_13);
programmer5 0:4650fee31cf1 5 DigitalOut myledR(PD_14);
programmer5 0:4650fee31cf1 6 DigitalOut myledB(PD_15);
programmer5 0:4650fee31cf1 7 InterruptIn button(PA_0);
programmer5 0:4650fee31cf1 8 Serial uart(PC_6,PC_7);
programmer5 0:4650fee31cf1 9
programmer5 0:4650fee31cf1 10 LIS3DSH acc(PA_7, PA_6, PA_5, PE_3);
programmer5 0:4650fee31cf1 11 // mosi, miso, clk , cs
programmer5 0:4650fee31cf1 12
programmer5 0:4650fee31cf1 13 char buttonDetectFlag=0;
programmer5 0:4650fee31cf1 14 void buttonISr(){
programmer5 0:4650fee31cf1 15 buttonDetectFlag=1;
programmer5 0:4650fee31cf1 16 }
programmer5 0:4650fee31cf1 17 int main() {
programmer5 0:4650fee31cf1 18 uart.baud(9600);
programmer5 0:4650fee31cf1 19 button.fall(&buttonISr);
programmer5 0:4650fee31cf1 20 int16_t X, Y, Z; //signed integer variables for raw X,Y,Z values
programmer5 0:4650fee31cf1 21 float roll, pitch; //float variables for angles
programmer5 0:4650fee31cf1 22
programmer5 0:4650fee31cf1 23 if(acc.Detect() != 1) {
programmer5 0:4650fee31cf1 24 uart.printf("LIS3DSH Acceleromoter not detected!\n");
programmer5 0:4650fee31cf1 25 while(1){ };
programmer5 0:4650fee31cf1 26 }
programmer5 0:4650fee31cf1 27
programmer5 0:4650fee31cf1 28 while(1) {
programmer5 0:4650fee31cf1 29 wait(0.5);
programmer5 0:4650fee31cf1 30 static char counter=0;
programmer5 0:4650fee31cf1 31 acc.ReadData(&X, &Y, &Z); //read X, Y, Z values
programmer5 0:4650fee31cf1 32 acc.ReadAngles(&roll, &pitch); //read roll and pitch angles
programmer5 0:4650fee31cf1 33 uart.printf("X: %d Y: %d Z: %d\n", X, Y, Z);
programmer5 0:4650fee31cf1 34 uart.printf("Roll: %f Pitch: %f\n", roll, pitch);
programmer5 0:4650fee31cf1 35
programmer5 0:4650fee31cf1 36 if(buttonDetectFlag)
programmer5 0:4650fee31cf1 37 {
programmer5 0:4650fee31cf1 38 buttonDetectFlag=0;
programmer5 0:4650fee31cf1 39 if(counter==0)
programmer5 0:4650fee31cf1 40 myledG=!myledG;
programmer5 0:4650fee31cf1 41 else if(counter==1)
programmer5 0:4650fee31cf1 42 myledO=!myledO;
programmer5 0:4650fee31cf1 43 else if(counter==2)
programmer5 0:4650fee31cf1 44 myledR=!myledR;
programmer5 0:4650fee31cf1 45 else if(counter==3)
programmer5 0:4650fee31cf1 46 myledB=!myledB;
programmer5 0:4650fee31cf1 47 counter++;
programmer5 0:4650fee31cf1 48 if(counter>=4)
programmer5 0:4650fee31cf1 49 counter=0;
programmer5 0:4650fee31cf1 50 }
programmer5 0:4650fee31cf1 51 }
programmer5 0:4650fee31cf1 52 }