Forum: Mikrocontroller und Digitale Elektronik STM32 HAL I2C Undefined Reference, .h/.c aber da


von MOBA 2. (Gast)


Lesenswert?

Hallo,

ich nutze den STM32 mit EM::BLOCKZ und dem HAL.

Uart, CAN etc.. klappt alles.


Jetzt brauche ich noch I2C. Die stm32f4xx_hal_i2c.h/c ist da. Auch die 
Funktionen sind dort drin.

Komischerweise sagt er mir (undefined reference, also .c ist ihm 
unbekannt).

Kann doch eigentlich nicht sein? Ich verstehe das Problem nicht, bei 
UART etc.. geht alles, gleiches Schema mit dem I2C gemacht da meckert er 
nur.

von Ruediger A. (Firma: keine) (rac)


Lesenswert?

vermutlich fehlt ein globales #define für das spezifische POD.

von Klaus Skibowski (Gast)


Lesenswert?

Hast Du in der Datei "stm32f4xx_hal_conf.h" die Auskommentierung von 
"#define HAL_I2C_MODULE_ENABLED" rausgenommen ?

von MOBA 2. (Gast)


Lesenswert?

Ruediger A. schrieb:
> vermutlich fehlt ein globales #define für das spezifische POD.

Wo muss ich das hinzufügen?
Ich habe schon in der .c #include "stm32f4xx_hal_i2c.h" hinzugefügt. 
Ohne Erfolg.

von MOBA 2. (Gast)


Lesenswert?

Klaus Skibowski schrieb:
> Hast Du in der Datei "stm32f4xx_hal_conf.h" die Auskommentierung von
> "#define HAL_I2C_MODULE_ENABLED" rausgenommen ?

Ich habe keine conf.h nur eine conf_template.h

Aber ein solches macro habe ich nie verändert, muss ich wahrscheinlich 
machen

Dort sind zwar die defines, also wenn #define HAL_I2C_MODULE_ENABLED 
dann bindet er die lib ein, wusste ich noch gar nicht, hatte da schonmal 
Probleme, da habe ich die _spi.h oder ähnliches einfach manuell 
eingebunden.

Jetzt macht es auch mal richtig sinn.

Habe das Macro: #define HAL_I2C_MODULE_ENABLED hinzugefügt, aber macht 
er tzrd. nicht.

In der _hal.h wir die #include "stm32f4xx_hal_conf.h" eingebunden.

von MOBA 2. (Gast)


Lesenswert?

Klaus Skibowski schrieb:
> Hast Du in der Datei "stm32f4xx_hal_conf.h" die Auskommentierung von
> "#define HAL_I2C_MODULE_ENABLED" rausgenommen ?

Ich habe sie gefunden, die lag direkt im Verzeichnis.
Habe dort die Auskommentierung rausgenommen, jetzt geht es!
Super! DANKE!


Bei den anderen Schnittstellen hatte das CubeMX gemacht, dachte ich 
brauche das für i2c nicht komplett ersetzten, jetzt bin ich schlauer!

von Klaus S. (skibby)


Lesenswert?

Freut mich !!!
Wenn Du mit CubeMX neue Module hinzufügst und das Projekt neu erzeugen 
lässt werden die entsprechenden Dateien u.a. auch die hal_conf.h und die 
hal_msp.c angepasst bzw. erweitert.

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.