Woran kann diese Fehlermeldung liegen?
TR schrieb: > Woran kann diese Fehlermeldung liegen? Das sagt sie doch. Sie sagt dir genau was du tun sollst.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.