Problem mit STM32 Programmierung

Gast #6459634
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte mich in die STM32 Programmierung einarbeiten. Ich habe hier 
im Forum die PDF Unterlagen von einem Stefan Frings heruntergeladen. 
Vielen Dank für die Sachen :)

Ich habe mit der IDE alles so eingerichtet, wie es im Dokument 
beschrieben ist. Der einzige Unterschied ist, dass ich ein anderes 
Nucleo Board verwende. Ich benutze ein NUCLEO-L152RE.

Ich habe den passenden CMSIS Ordner in mein Projektordner gelegt. In 
meiner main.c die passende Headerfile genommen. In meinem Fall die 
"stm32l152xe.h".

Nun kommt die Fehlermeldung, die ich euch angehängt habe. Er findet die 
"core_cm3.h" nicht. Da ich mich in dem Thema nicht so gut auskenne, weiß 
ich leider nicht, wie ich nun weitermachen soll. Weiß einer von euch, 
wie es dort weiter geht?

MfG
Angehängte Dateien:
#6459655
Lesenswert?
• ▲
▼
Der Compiler weiß nicht wo er das include file

core_cm3.h

finden soll. Das wird wohl im Ordner

CMSIS/Core/Include

liegen. Kenne mich jetzt mit Deiner IDE (Eclipse?) nicht aus, aber 
irgendwo kann man konfigurieren, wo der Compiler nach Files sucht die 
mit

#include "<datei>"

eingebunden werden. Er sucht zuerst im gleichen Verzeichnis wo die Datei 
liegt in der die "#include" Anweisung steht, und danach in einer 
konfigurierten Liste von Verzeichnissen.

Das ist der Teil im Aufruf des gcc den Du im Fenster am rechten Rand 
hast, mit -I<verzeichnis> ... kann man die Verzeichnisse beim 
Compileraufruf mitgeben, in denen nach Includes gesucht wird.

Da der gcc ja von Deiner IDE aufgerufen wird, müsste das irgendwo in 
Deinen Projekteigenschaften eingestellbar sein.

EDIT: Google hilft, es sollte wohl dort einstellbar sein:

Project > Properties > C/C++ Build > Settings > Tool Settings > MCU GCC 
Compiler > Include paths
Beitrag #6460865 wurde von einem Moderator gelöscht.
Gast #6461798
Lesenswert?
• ▲
▼
Hallo Markus,

vielen Dank für deinen Beitrag. Ich habe den passenden Pfad eingegeben 
und der Compiler findet nun die core_cm3.h Headerfile.

Nun habe ich ein anderes Problem. Bei mir werden die Funktionen wie 
WRITE_REG oder SET_BIT nicht gefunden. Siehe angehängtes Bild.

Welche Headerfile muss da denn eingebunden werden? Ich habe dazu 
folgende Seite angeschaut:

http://stefanfrings.de/stm32/stm32f3.html#newlib

Ich habe mir die Rubrik "ARM Libraries" angeschaut. Wenn ich das richtig 
verstanden habe, dann sind die Befehle, die bei mir nicht gefunden 
werden, von ST selbst hinzugefügt worden. Warum findet der Compiler 
diese dann nicht?

MfG
Angehängte Dateien:
Gast #6461977
Lesenswert?
• ▲
▼
#elif defined(STM32L152xE)
  #include "stm32l152xe.h"

In der stm32l1xx.h wird auch entsprechend des -dSTM32L152xE die zum µC 
passende Header Datei benutzt.

D.h. Du solltest nicht
#include "stm32l152xe.h"
direkt verwenden sondern
stm32l1xx.h
den µC Type unter Define Symbols angeben.

So werden auch alle weiteren µC abhängigen Bedingungen im Projekt 
erfüllt.
Gast #6474427
Lesenswert?
• ▲
▼
AVR schrieb im Beitrag #6459634:
> Ich habe den passenden CMSIS Ordner in mein Projektordner gelegt. In
> meiner main.c die passende Headerfile genommen. In meinem Fall die
> "stm32l152xe.h".

AVR schrieb im Beitrag #6461798:
> Nun habe ich ein anderes Problem. Bei mir werden die Funktionen wie
> WRITE_REG oder SET_BIT nicht gefunden. Siehe angehängtes Bild.

Zusammengefasst:

Du musst die Datei stm32l1xx.h nehmen.

Die Datei core_cm3.h befindet sich in dem anderen Verzeichnis 
CMSIS/core, vermutlich hast du das nicht zur Projektkonfiguration 
(includes) hinzugefügt oder du hast es nur nicht für beide Profile 
Debug+Release gemacht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.