Allgemeines zu den STM32F7-Librarys

Die Files von mir sind recht einfach am STM32F7 zu benutzen,
wenn man einige Dinge beachtet.

Ich schreib hier mal die Vorgehensweise für ein neues Projekt
um die LED auf dem F746-Disco zum blinken zu bringen.

1. In OpenSTM32 ein neues “C-Project” erzeugen
(siehe Doku zu “erstes Projekt”)

2. Die Files der Librarys “F746_System” und “F746_LED” runterladen
und per Drag&Drop in das Projekt hinzufügen.
(C-Files in den SRC-Ordner, H-Files in den INC-Ordner)

3. Das “Main.c” durch diese Vorlage ersetzen :

//--------------------------------------------------------------
// File     : main.c
// Datum    : 12.07.2015
// Version  : 1.0
// Autor    : UB
// EMail    : mc-4u(@)t-online.de
// Web      : www.mikrocontroller-4u.de
// CPU      : STM32F746
// Board    : STM32F746-Discovery-Board
// IDE      : OpenSTM32
// GCC      : 4.9 2015q2
// Module   : CubeHAL
// Funktion : Hauptprogramm
//--------------------------------------------------------------

#include "stm32_ub_system.h"

int main(void)
{
  // init vom System
  UB_System_Init();

  while(1) {
    // nothing to do
  }
}

4. In die “Main.c” den Code zum blinken hinzufügen :


#include "stm32_ub_system.h"
#include "stm32_ub_led.h"

int main(void)
{
  // init vom System
  UB_System_Init();

  // init der LED
  UB_Led_Init();

  while(1) {
    UB_Led_Toggle(LED_GREEN);
    HAL_Delay(100);
  }
}

5. Nach dem compilieren und programmieren sollte
jetzt die grüne LED auf dem F7-Disco blinken

Projekte mit Unterordnern :

einige Projekte bzw. Librarys enthalten Unterordner
um die Files etwas strukturiert zu sortieren.

z.B. die uBasic-Library besteht aus den zwei Files :
“stm32_ub_ubasic.c” und “stm32_ub_ubasic.h”
und einem Unterordner “\ubasic” der nochmal
4 einzelne Files enthält.

Um diese Struktur im OpenSTM32-Projekt beizubehalten
muss folgendes gemacht werden.

1. Das File “stm32_ub_ubasic.c” kann direkt per Drag&Drop
in den “src” Ordner vom Projekt kopiert werden.

2. Das File “stm32_ub_ubasic.h” kann direkt per Drag&Drop
in den “inc” Ordner vom Projekt kopiert werden.

3. Jetzt in der IDE das Projekt markieren (die oberste Ebene)
und per “rechter Maustaste/new/Source Folder” einen
neuen Unterordner anlegen und einen Namen vergeben
(hier im Beispiel “ubasic”)

das Projekt-Verzeichnis sieht damit so aus :

f7_prj_u2

die 4 Files vom “uBasic” Unterordner können jetzt per Drag&Drop
in den gerade angelegten “uBasic” Ordner kopiert werden.

f7_prj_u3

4. Damit beim compilieren die Files gefunden werden, muss
der Ordern noch bekannt gemacht werden.
Dazu “rechte Maustaste/Properties” und unter
“C/C++General/Path and Symbols” in den “Includes”
per “Add…” den Pfad hinzufügen, hier : “${ProjDirPath}/ubasic”
(in allen Languages)

f7_prj_u4

5. Das compilieren sollte jetzt ohne Fehler funktionieren.

Benutzung anderer Entwicklungsumgebungen :

Falls jemand eine andere IDE als OpenSTM32 benutzt,
muss er darauf achten, das die Include Pfade richtig
gesetzt sind, damit die HAL-Librarys gefunden werden
(die sind in meinen Projektfiles nicht dabei)

Hier meine Ordnerstruktur der Hal-Librarys als download :
(zusammen mit den CMSIS-Files)

stm32f746g-disco_hal_lib

in die HAL-Driver Pfade müssen (nach dem auspacken) noch die
aktuellen HAL-Librarys von ST kopiert werden.

Danach braucht es in eurer IDE diese 4 Include Pfade :

“\stm32f746g-disco_hal_lib\CMSIS\Core”
“\stm32f746g-disco_hal_lib\CMSIS\Device”
“\stm32f746g-disco_hal_lib\HAL-Driver\Inc”
“\stm32f746g-disco_hal_lib\HAL-Driver\Inc\Legacy”

damit habt ihr die gleiche Ordnerstruktur wie ich.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


+ sechs = dreizehn

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>