STM32F4 & CooCox & ST-Structure-Elemente

OP #3535786
Lesenswert?

Hallo Leute,

Ich habe bei meinem CoCox CoIDE folgendes Problem: das Tool nimmt keine 
Structure Elemente an.
Zu meiner Entwicklungsumgebung:
 - CoCox IDE 1.7.6 (aktuellste Version)
 - GCC Compiler 4.8 (aktuellste Version)

Bei der Installation der IDE hab ich mich stark an die Anleitung 
gehalten: 
http://www.mikrocontroller.net/articles/STM32_CooCox_Installation

Prinzipiell funktioniert das Tool, aber erkennt eben keine Structures. 
Folgender Code produziert einen Syntax Error:
1
typdef struct{
2
uint32_t testvariable;
3
} inittypdef1;
4

5
inittypedef1.testvariable = 20;

Ich hoffe ihr könnt mir helfen. Vielen dank schonmal im Voraus.

LG Chris
OP #3535830
Lesenswert?

Hi,
Danke erstmal für die ultraschnellen Antworten.

Was ich da reingeschrieben habe, sollte eigentlich ein abstraktes 
Beispiel sein, hab ich aber leider falsch reingeschrieben...
Mein eigentliches Problem stellt sich folgendermaßen dar:
Ich will den STM32F4 mit seinen Standard-Libraries verwenden. In den 
Libraries ist zum Beispiel sowas drinnen:
1
typedef struct
2
{
3
  uint32_t GPIO_Pin;              /*!< Specifies the GPIO pins to be configured.
4
                                       This parameter can be any value of @ref GPIO_pins_define */
5

6
  GPIOMode_TypeDef GPIO_Mode;     /*!< Specifies the operating mode for the selected pins.
7
                                       This parameter can be a value of @ref GPIOMode_TypeDef */
8

9
  GPIOSpeed_TypeDef GPIO_Speed;   /*!< Specifies the speed for the selected pins.
10
                                       This parameter can be a value of @ref GPIOSpeed_TypeDef */
11

12
  GPIOOType_TypeDef GPIO_OType;   /*!< Specifies the operating output type for the selected pins.
13
                                       This parameter can be a value of @ref GPIOOType_TypeDef */
14

15
  GPIOPuPd_TypeDef GPIO_PuPd;     /*!< Specifies the operating Pull-up/Pull down for the selected pins.
16
                                       This parameter can be a value of @ref GPIOPuPd_TypeDef */
17
}GPIO_InitTypeDef;

In meiner Main.c mach ich dann folgendes:
1
GPIO_InitTypeDef GPIO_InitStructure; //Zeile 6
2

3
GPIO_InitStructure.GPIO_Pin = 1; //Zeile 8

Der Compiler-Fehler sieht so aus:
[cc] C:\CooCox\CoIDE\workspace\scratch\main.c:8:19: error: expected '=', 
',', ';', 'asm' or '__attribute__' before '.' token

Ich nutze in der Arbeit IAR und da funktioniert alles perfekt, also 
scheine ich irgendwas noch falsch konfiguriert zu haben...

Das ganze sieht exakt gleich aus, wenn ich in der main.c eine Struct 
definiere und dann eine instanz bilde...
OP #3535879
Lesenswert?

Sorry. Hab mal den gesamten Workspace angehängt und hier ist das gesamte 
main.c-File:
1
// Demo Blink-LED für STM32F4xx mit einem STM32F4DISCOVERY Board
2
// (c) 2013, Markus Müller
3
// Dieser Code darf frei verwendet, modifiziert und kopiert werden. Benutzung auf eigene Gefahr.
4
#include "stm32f4xx.h" // Deklaration der Peripheriefunktionen
5
#include "stm32f4xx_gpio.h"
6

7
GPIO_InitTypeDef GPIO_InitStructure;
8

9
GPIO_InitStructure.GPIO_Pin = 1;
10

11
void Delay(long i);
12

13
// Haupt-Programmschleife
14
int main(void)
15
{
16
    RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; // Clock für Port D aktivieren
17

18
    GPIOD->MODER = 0x55000000; // Pin 12..15 als Ausgang deklarieren
19

20
    while(1) // Endlos SChleife
21
    {
22
        GPIOD->BSRRH = 0xF000; // Alle LED's aus
23
        Delay(1000000);
24
        GPIOD->BSRRL = 0x1000; // LED 1 ein
25
        Delay(1000000);
26
        GPIOD->BSRRL = 0x2000; // LED 2 ein
27
        Delay(1000000);
28
        GPIOD->BSRRL = 0x4000; // LED 3 ein
29
        Delay(1000000);
30
        GPIOD->BSRRL = 0x8000; // LED 4 ein
31
        Delay(1000000);
32
    }
33
}
34

35
// Delay für Verzögerungen
36
void Delay(long i)
37
{
38
    volatile long iZ = i;
39
    while (iZ--);
40
}

Mir sah das Problem eben nicht wirklich wie ein 
include-Datei-vergessen-Problem aus.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren