AnsweredAssumed Answered

MEMS-Sensors with STM32F4 Discovery

Question asked by Karlo Doesn't Matter on Jun 13, 2017
Latest reply on Oct 20, 2017 by AvaTar

Hello everybody, 

I am a student and I really don't have a clue how to program an uController. This year we have a big project with a STM32F4 Discovery board. We need to read the data from an additional board, that includes 3 Sensors: Accelerometer, Gyroscope and Magnetometer. We are not allowed to use the CubeMx or any additional Libraries, but we do have a starting program to help us.

Can you please give me some "to do list", some plan how to start, what i need to do?

For example, this is the main:

// Main.cpp

#include <Compiler.h>
#include <Cortex-M.h>
#include <Debug.h>

#include "STM32F4xx_Init.h"

#include <STK.h>

static bool volatile runMainLoop = true;

/// Program entry.
DECL_NO_RETURN int main(void)
ITM_PUTS("It all starts here!");
ITM_PRINTF("AHB clock = %u Hz", HClk());
ITM_PRINTF("APB1 clock = %u Hz", PClk1());
ITM_PRINTF("APB2 clock = %u Hz", PClk2());


ITM_PUTS("Controller has been initialized");

/// User initialization may start here
/// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

/// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/// End of user initialization!

/// Das BASEPRI-Register ist im Start-up-Code auf 0x10 eingestellt worden. Damit kann kein IRQ mit niedrigerer oder gleicher Prio
/// aktiv werden. Erst mit dem Auruf der nachfolgenden Funktion können alle IRQs aktiv werden.



/// Indem Bit #0 im CONTROL-Register des Cortex-M4 gesetzt wird, wird der Prozessor in den non-priviliegierten Modus gesetzt.
/// Damit können diverse, wichtige Einstellungen nicht mehr versehentlich überschrieben werden.
/// Aber Achtung: Der Exception-Modus ist immer privilegiert, unabhängig von CONTROL[0].



ITM_PUTS("Starting main loop");

while ( runMainLoop )


ITM_PUTS("This is the end!");




Thank you in advance!