Grundstruktur in C für das mySTM32 Board Light

Einfache embedded C Programme bestehen oft nur aus einer *.c Datei mit der folgenden typischen Struktur:

  1. Programmkopfdokumentation, mit Titel, Funktion, Hardwareinformationen, Autor, Versionshistorie
  2. Deklarationen meist mit Anweisungen zum Einfügen von Deklarationsdatein #include
  3. einem Bereich in dem bei Bedarf globale Variablen oder Konstanten angelegt werden können
  4. die eigenen Funktionen
  5. das Hauptprogramm
  6. Interrupt-Service-Routinen
//---------------------------------------------------------------------------
// Title     : Basic main code pattern of a simple ARM C application in SiSy
//---------------------------------------------------------------------------
// Function  : ...
// Wiring    : ...
//---------------------------------------------------------------------------
// Hardware  : ...
// Clock     : ... MHz
// Language  : ARM C
// Date      : ...
// Version   : ...
// Author    : ...
//---------------------------------------------------------------------------
#include <stddef.h>
#include <stdlib.h>
#include "hardware.h"
 
// --------------------------------------------------------------------
// hier bei Bedarf globale Variablen definieren
 
// --------------------------------------------------------------------
// ab hier eigene Funktionen die benötigt werden 
void initApplication()
{
    // config 10ms SystemTimer
    SysTick_Config(SystemCoreClock/100);
    // user initializations here
 
}
 
// --------------------------------------------------------------------
// nach den Funktionen das eigentliche Hauptprogramm
int main(void)
{
    SystemInit();
    initApplication();
    do{
  	 // main loop
         // hier kann die Anwendungslogik programmiert werden
         // Eingabe -> Verarbeitung -> Ausgabe
      } while (true);
    return 0;
}
 
// --------------------------------------------------------------------
// Interrupt-Behandlungs-Routinen können hier nach dem Hauptprogramm  
// oder auch bei den Funktionen programmiert werden
extern "C" void SysTick_Handler(void)
{
    // Application SysTick default 10ms
}
//------------------------------------------------------------------------------

Test

An dieser Stelle wird im Tutorial jeweils das Testen der Anwendung beschrieben. Nutzen sie die Schaltflächen Kompilieren, Linken und Brennen. Bis jetzt macht unser Mikrocontroller noch gar nichts. Wir haben ja ein leeres Programm auf den Controller übertragen.

Videozusammenfassung

Hier dieser Abschnitt als kleine Videozusammenfassung zum nochmal Drüberschauen.

<

Hinweise

In den folgenden Abschnitten können Lösungen in drei Versionen angeboten werden:

  1. Realisierung mit den klassischen Standard Peripherie Treibern von ST
  2. Realisierung mit der STM32 HAL („Hardware Abstraction Layer“) Bibliothek von ST
  3. Realisierung mit der STM32 LL („Low Level“) Bibliothek von ST

Beachten Sie jeweils die Compilereinstellungen und die verwendeten Includes.

Weiter mit