Forum: Mikrocontroller und Digitale Elektronik Basisprojekt STM32F0 KeilµVision4 anlegen: fatal error 'stm32f0xx_gpio.h' file not found


von sdt (Gast)


Lesenswert?

Hallo zusammen,

ich möchte mir ein Basisprojekt für den STM32F030 in Keil µVision 4 
anlegen und zwar mit den Standardbibliotheken von ST. Wenn ich nun aber 
z.B. die GPIO-Lib einbinden will, dann kommt folgende Fehlermeldung:

fatal error 'stm32f0xx_gpio.h' file not found

Zu meinem Vorgehen:

1) Bibliotheken von ST gedownloadet
2) (In dem Dialogfester links) die .h und .c Datei für die GPIOs in die 
Projektstruktur eingebunden
3) Bei den Einstellungen/C/C++/Prepocessor Symbols/Define 
"USE_STDPERIPH_DRIVER" eingegeben
4) Bei den Einstellungen/C/C++/Include Paths den Downloadpfad der 
Bibliotheken von ST eingebunden

Wieso kann er die Datei trotzdem nicht finden? Muss ich noch was anderes 
einstellen oder habe ich etwas falsch gemacht?

von Wu (Gast)


Lesenswert?

Die Cube kann dir ein gesamtes Projekt mit allen includes generieren, 
falls es dir egal ist ob HAL oder SPL.

von sdt (Gast)


Lesenswert?

Wu schrieb:
> HAL oder SPL.

Was ist dabei der Unterschied?

Wu schrieb:
> Die Cube kann dir ein gesamtes Projekt mit allen includes generieren

Du meinst den stm32cubemx? Wie mache ich es damit?

von Daniel V. (Gast)


Lesenswert?

sdt schrieb:
> Was ist dabei der Unterschied?

HAL ist quasi der Nachfolger der SPL.

sdt schrieb:
> Du meinst den stm32cubemx? Wie mache ich es damit?

CubeMX herunterladen, Pins konfiguieren und dann Code generieren.

Gruß
Daniel

von Daniel V. (Gast)


Lesenswert?

Mit der Standardlibary gehst Du wie folgt vor:

1. Erstelle Ordner und kopiere folgende Files aus der SPL in den 
jeweiligen Ordner:

\cmsis_Boot
stm32f0xx.h
stm32f0xx_conf.h
system_stm32f0xx.c
system_stm32f0xx.h

\startup
startup_stm32f0xx.s

\cmsis_CoreSetup
core_cm.h
core_cm4_simd.h
core_cmFunc.h
core_cmInstr.h

\StdLib_inc
Deine benötigten Peripherieheaders (GPIO, RCC, USART, SPI, DMA ...)

\StdLib_src
Deine benötigten Peripherie-Cs (GPIO, RCC, USART, SPI, DMA ...)

\user_inc
Deine Headers

\user_src
Deine Funktionsdateien und die main.c

2. Dann diese Dateien in den Project_Items zum Projekt einfügen.
3. Option for Target, Reiter C/C++: define: USE_STDPERIPH_DRIVER
4. Include Path, die angelegten Ordner auswählen
5. Have a lot of fun!

Gruß
Daniel

von sdt (Gast)


Angehängte Dateien:

Lesenswert?

Daniel V. schrieb:
> Mit der Standardlibary gehst Du wie folgt vor:

Habe das genau so nachgemacht und jetzt kommt die im Bild angezeigte 
Fehlermeldung, dass er uint32 nicht kennt.
Wie kann ich das beheben?

von sdt (Gast)


Lesenswert?

Wu schrieb:
> Die Cube kann dir ein gesamtes Projekt mit allen includes generieren,
> falls es dir egal ist ob HAL oder SPL.

Habe mir mit dem Cube nun ein Projekt erstellen lassen. Kann ich nicht 
einstellen, dass ich die SPL verwenden will?

Denn nach kurzem Einlesen scheint es mir so, als ob SPL und HAL komplett 
unterschiedlich sind.

von Wu (Gast)


Lesenswert?

Ja, sind unterschiedlich. Nein, kannst du nicht einstellen.

von Georg G. (df2au)


Lesenswert?

sdt schrieb:
> dass er uint32 nicht kennt

Wird üblicherweise in stdint.h definiert

von Daniel V. (voda) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hast Du die Ordner unter C/C++ unter Include Path angelegt und hast Du 
auch mal
1
#include <stm32f4xx_conf.h>

probiert? Ich hatte auch mal das Problem und da hatte ich das Projekt 
mal neu aufgezogen.

Anbei meine Einstellungen (ist µVersion 5, dürfte in µVersion 4 nicht 
anders sein)

Hast Du denn mal versucht Dein Projekt in Keil µVersion 5 zu erstellen? 
Was spricht dagegen? Diese ist für die Cortex-M0 frei.

sdt schrieb:
> Habe mir mit dem Cube nun ein Projekt erstellen lassen. Kann ich nicht
> einstellen, dass ich die SPL verwenden will?

Das ist der offizielle Nachfolger der SPL. Ich meine sogar, das die SPL 
von STM gar nicht mehr weiterentwickelt wird. Du kannst jedoch die 
Target-Einstellungen mit Deinem und vom Cube generierten Projekt auch 
mal miteinander vergleichen.

Gruß
Daniel

PS
Sorry für das Doppelbild

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.