Forum: Mikrocontroller und Digitale Elektronik ATM32 - Einbindung - stm32f10x.h -


von TR (Gast)


Angehängte Dateien:

Lesenswert?

Woran kann diese Fehlermeldung liegen?

von Wf88 (wf88)


Lesenswert?

TR schrieb:
> Woran kann diese Fehlermeldung liegen?

Das sagt sie doch. Sie sagt dir genau was du tun sollst.

von Markus M. (adrock)


Lesenswert?

Die Include-Datei stm32f10x.h ist für verschiedene Varianten (eben das 
"x") geschrieben. Damit nun genau die richtigen Definitionen gemacht 
werden, benötigt sie einen Hinweis, welchen Controller Du genau benutzt, 
also z.B. ob es ein STM32f103 oder STM32f107 ist.

Das macht man normalerweise durch die Zuweisung eines entsprechenden 
Macros bzw. Konstanten.

Die Includedatei sieht an der Stelle vermutlich so aus:
1
#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) 
2
  /* #define STM32F10X_LD */     /*!< STM32F10X_LD: STM32 Low density devices */
3
  /* #define STM32F10X_LD_VL */  /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */  
4
  /* #define STM32F10X_MD */     /*!< STM32F10X_MD: STM32 Medium density devices */
5
  /* #define STM32F10X_MD_VL */  /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */  
6
  /* #define STM32F10X_HD */     /*!< STM32F10X_HD: STM32 High density devices */
7
  /* #define STM32F10X_HD_VL */  /*!< STM32F10X_HD_VL: STM32 High density value line devices */  
8
  /* #define STM32F10X_XL */     /*!< STM32F10X_XL: STM32 XL-density devices */
9
  /* #define STM32F10X_CL */     /*!< STM32F10X_CL: STM32 Connectivity line devices */
10
#endif
11
/*  Tip: To avoid modifying this file each time you need to switch between these
12
        devices, you can define the device in your toolchain compiler preprocessor.
13
14
 - Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers
15
   where the Flash memory density ranges between 16 and 32 Kbytes.
16
 - Low-density value line devices are STM32F100xx microcontrollers where the Flash
17
   memory density ranges between 16 and 32 Kbytes.
18
 - Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers
19
   where the Flash memory density ranges between 64 and 128 Kbytes.
20
 - Medium-density value line devices are STM32F100xx microcontrollers where the 
21
   Flash memory density ranges between 64 and 128 Kbytes.   
22
 - High-density devices are STM32F101xx and STM32F103xx microcontrollers where
23
   the Flash memory density ranges between 256 and 512 Kbytes.
24
 - High-density value line devices are STM32F100xx microcontrollers where the 
25
   Flash memory density ranges between 256 and 512 Kbytes.   
26
 - XL-density devices are STM32F101xx and STM32F103xx microcontrollers where
27
   the Flash memory density ranges between 512 and 1024 Kbytes.
28
 - Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.
29
  */

Du musst nun entweder die richtige Zeile durch entfernen der 
Kommentarzeilen aktivieren (blöd, da man die Includefiles meistens für 
verschiedene Projekte verwendet), oder (besser) Du definierst in Deiner 
IDE den entsprechenden Wert.

Wenn Du z.B. einen STM32F103 hättest, müsstest Du

#define STM32F10X_LD

definieren. Wenn Du den gcc per Hand oder Makefile aufrufst, z.B. mit 
"-D STM32F10X_LD" (das sagt dem gcc er soll diesen Wert definieren mit 
einem leeren Inhalt, das reicht hier).

: Bearbeitet durch User
von TR (Gast)


Lesenswert?

Ist mal eine Ansage -

werde ich gegebenenfalls berücksichtigen -

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.