Basic example showing how to use the Compass (LSM303 device with Accelerometer and Magnetometer) present on DISCO_L476VG board.

Dependencies:   BSP_DISCO_L476VG COMPASS_DISCO_L476VG

Committer:
jeromecoutant
Date:
Tue Sep 24 18:05:30 2019 +0200
Revision:
4:875e95338f6d
Parent:
0:211cb2effe6e
Update with STM32Cube_FW_L4_V1.14.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:211cb2effe6e 1 #include "mbed.h"
bcostm 0:211cb2effe6e 2 #include "COMPASS_DISCO_L476VG.h"
bcostm 0:211cb2effe6e 3
bcostm 0:211cb2effe6e 4 COMPASS_DISCO_L476VG compass;
bcostm 0:211cb2effe6e 5
bcostm 0:211cb2effe6e 6 DigitalOut led1(LED1);
bcostm 0:211cb2effe6e 7
bcostm 0:211cb2effe6e 8 int main()
bcostm 0:211cb2effe6e 9 {
bcostm 0:211cb2effe6e 10 int16_t MagBuffer[3];
bcostm 0:211cb2effe6e 11 int16_t AccBuffer[3];
bcostm 0:211cb2effe6e 12
jeromecoutant 4:875e95338f6d 13 printf("Compass started (LD5 should blink)\n");
bcostm 0:211cb2effe6e 14
bcostm 0:211cb2effe6e 15 while(1) {
bcostm 0:211cb2effe6e 16
bcostm 0:211cb2effe6e 17 // Read acceleremoter and magnetometer values
bcostm 0:211cb2effe6e 18 compass.AccGetXYZ(AccBuffer);
bcostm 0:211cb2effe6e 19 compass.MagGetXYZ(MagBuffer);
bcostm 0:211cb2effe6e 20 // Display values
bcostm 0:211cb2effe6e 21 printf("Acc X = %d\n", AccBuffer[0]);
bcostm 0:211cb2effe6e 22 printf("Acc Y = %d\n", AccBuffer[1]);
bcostm 0:211cb2effe6e 23 printf("Acc Z = %d\n", AccBuffer[2]);
bcostm 0:211cb2effe6e 24 printf("Mag X = %d\n", MagBuffer[0]);
bcostm 0:211cb2effe6e 25 printf("Mag Y = %d\n", MagBuffer[1]);
bcostm 0:211cb2effe6e 26 printf("Mag Z = %d\n", MagBuffer[2]);
bcostm 0:211cb2effe6e 27 printf("\033[6A"); // Moves cursor up x lines (x value is between [ and A)
bcostm 0:211cb2effe6e 28
bcostm 0:211cb2effe6e 29 led1 = !led1;
jeromecoutant 4:875e95338f6d 30 ThisThread::sleep_for(1000);
bcostm 0:211cb2effe6e 31 }
bcostm 0:211cb2effe6e 32 }