Forum: Mikrocontroller und Digitale Elektronik Arten und Möglichkeiten von z.B. #include?


von Ronny Roh (Gast)


Lesenswert?

Guten Tag,
ich arbeite mit STM32 und Eclipse(also System Workbench for STM32).

Desweiteren habe ich CubeMX und die HAL-Library in Nutzung.

Welche Arten von "externen" Quellcodes gibt es? Ich kenne z.B. die .h 
Header-Dateien aus dem HAL-Paket.

Diese binde ich unter meinen Projekt-Properties -> C/C++ Build -> Tool 
Settings -> Includes ein.

Und dann mit dem #include Befehl in meinen .c Dateien.

Ich stelle diese Fragen da ich ein Problem habe, ein STemWin Projekt in 
ein CubeMX Projekt zu integrieren. Irgendwo ist eine Lücke in meinem 
Wissen.

Ich habe ein Projekt welches von CubeMX erstellt wurde, in denen reicht 
ein einzelner #include "stm32f4xx_hal.h" Befehl und ich habe Zugriff auf 
alles von SPI bis UART usw.

Im anderen Projekt(STemWin) muss ich alles Einzeln bennen... z.B.
#include "stm32f4xx_hal.h
#include "stm32f4xx_hal_dma2d.h"
#include "stm32f4xx_hal_sdram.h"
#include "stm32f4xx_hal_sai.h"
#include "stm32f4xx_hal_sd.h"
#include "stm32f4xx_hal_i2c.h"

So konnte ich viele Fehler (unbekannte Datentypen usw. aufgrund 
fehlender Includes etc.) beheben aber es werden immer mehr und mehr... 
ich vermute ich habe irgendwo etwas falsch eingestellt :(?

Ich hoffe mir kann jemand helfen, es fällt mir schwer mein Problem zu 
beschreiben. Ich habe das STemWin Beispiel-Projekt aus dem F4 Framework 
-> 
C:\Users\Unknown\STM32Cube\Repository\STM32Cube_FW_F4_V1.14.0\Projects\S 
TM32469I-Discovery\Applications\STemWin\STemWin_SampleDemo

Und in diesem möchte ich Code der von CubeMX erstellt wurde zum Laufen 
bringen. Trotz vermeintlichem Includieren der HAL, geht das aber nicht?

Blickt jemand durch?
MfG

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Moin.

Unterscheid zwischen
#include "..."
und
#include <...>
ist bekannt?

Ronny Roh schrieb:
> es werden immer mehr und mehr...

Zeig doch mal.

von fop (Gast)


Lesenswert?

Das Geheimnis dürfte in den .h Dateien liegen. Zeilen, die mit #ifdef
oder #if defined( anfangen, könnten die Lösung sein.

von fop (Gast)


Lesenswert?

Ich habe gerade mal in so eine Datei aus den Weiten des Netzes geschaut.
Eine der ersten Anweisungen ist #include "stm32f4xx_hal_conf.h". Dabei 
steht _conf bestimmt für Konfiguration. Da ist bestimmt vorgesehen, dass 
Du Deinen Mikrokontroller und die benötigte Peripherie einträgst. Das 
fehlende Hochkomma am Ende der ersten Include-Zeile ist Dir bestimmt nur 
hier im Forum passiert.

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.