Forum: Mikrocontroller und Digitale Elektronik Probleme mit dem STM32F3Discoery, mal wieder.


von J. T. (chaoskind)


Angehängte Dateien:

Lesenswert?

MoinMoin liebes Forum,

ich hatte neulich schonmal ein Problem mit den Beispielen die bei dem 
Board dabei sind. Nachdem ich das Projekt dann richtig geladen hatte, 
hat auch alles funktioniert, ich konnte die LEDs per PWM dimmen, blinken 
lassen und im Kreis drehen lassen... was mir halt so auf die schnelle 
einfiel.

Nun habe ich aber versucht, ein "project from the scratch" schimpfen die 
das glaub ich bei CodeBlocks EPS, zu erstellen. Die ganzen Libarys 
werden mir im Projektpfad angezeigt.
1
#include "stm32f30x_conf.h"
2
3
#include "stm32f30x.h"
4
5
#include "stm32f30x_gpio.h"
6
7
#include "stm32f30x_rcc.h"
8
9
10
11
int main(void)
12
{
13
  GPIO_InitTypeDef GPIO_InitStructure;
14
15
  SystemInit();
16
17
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
18
19
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
20
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
21
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
22
  GPIO_Init(GPIOC, &GPIO_InitStructure);
23
24
  GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET);
25
26
  while(1)
27
  {
28
  }
29
}

Ich bekomme folgende Fehlermeldung ausgegeben:

main.c||In function 'main':|
main.c|17|error: 'RCC_APB2Periph_GPIOC' undeclared (first use in this 
function)|
main.c|17|note: each undeclared identifier is reported only once for 
each function it appears in|
main.c|19|error: 'GPIO_Mode_Out_PP' undeclared (first use in this 
function)|
||=== Build finished: 3 errors, 0 warnings (0 minutes, 0 seconds) ===|


RCC_APB2... wird doch eigentlich in stm32f30x_rcc.h definiert, sowie das 
GPIO_Mode... in der stm32f30x_gpio.h?

Ich hatte auch schon versucht, die jeweiligen stm32f30x_gpio.c usw zu 
inkludieren, da spuckt er mir jedoch die Fehlermeldung aus, er fände die 
Datei nicht, obwohl sie mir doch im Projektpfad angezeigt wird.

Es wäre schön, wenn mir da jemand auf die Sprünge helfen könnte

MfG Chaos

von J. T. (chaoskind)


Lesenswert?

P.S.
Die paar Zeilen stammen übrigens aus dem DillerTechnologies Tutorial, 
auf das ich hier auch gestoßen wurde ;-)

von Martin (Gast)


Lesenswert?

>> RCC_APB2... wird doch eigentlich in stm32f30x_rcc.h definiert, sowie das
>> GPIO_Mode... in der stm32f30x_gpio.h?

Wo ist das Problem? Das kannst du doch ganz einfach prüfen.

von J. T. (chaoskind)


Lesenswert?

Ja da stehen sie jeweils drin. Und in den "fertigen" Projekten werden 
soweit ich das überblicke, die selben header benutzt. Und da 
funktioniert es ja auch.

Ich bin nur noch blutiger C Anfänger....

Und dies ist auch mein erster Kontakt mit 32bittern....

Da prallt viel aufeinander, glaub ich...

von Tobi D. (fanti)


Lesenswert?

RCC_APB2Periph_GPIOC kennt er nicht, da die Einstellung für deinen Chip 
auf einem anderen Bus liegen, siehe Datenblatt

zusätzlich ist es auch in deiner angehängten Datei nachzuschlagen, 
probier mal:
RCC_AHBPeriph_GPIOC

von J. T. (chaoskind)


Lesenswert?

Sehr schön, damit gibt er mir schonmal ein Fehler weniger aus. Nun 
meckert er noch über
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
aber ich denke, das wird dann das selbe Problem sein. NACHLESEN ist ein 
guter Tip *gg.
Das werd ich nun nochmal tun, und dann berichten obs geklappt hat!

Vielen Dank erstmal für den Ansatz

MfG Chaos

von J. T. (chaoskind)


Lesenswert?

Jau nu geht es =)
1
#include "stm32f30x_conf.h"
2
3
#include "stm32f30x.h"
4
5
#include "stm32f30x_gpio.h"
6
//#include <stm32f30x_gpio.c>
7
8
#include "stm32f30x_rcc.h"
9
//#include "stm32f30x_rcc.c"
10
11
GPIO_InitTypeDef        GPIO_InitStructure;
12
13
int main(void)
14
{
15
    SystemInit();
16
17
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOE, ENABLE);
18
19
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15 | GPIO_Pin_14;
20
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
21
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
22
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
23
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
24
    GPIO_Init(GPIOE, &GPIO_InitStructure);
25
26
27
28
    while(1)
29
    {
30
    }
31
}

aber nun ist ein anderes Problem aufgetaucht. Wenn ich versuche, ein 
neues Projekt zu erstellen, sagt er :"could not file device combobox. 
this could happen due to license or incorrect installation. check 
licence or reinstall."

Wo kann ich denn die Lizenz prüfen? Und wieso kommt das so plötzlich? 
Bis grad eben gings doch noch?

von Tobi D. (fanti)


Lesenswert?

hm, das ist mir unbekannt, aber die Initialisierung sieht gut aus

von J. T. (chaoskind)


Lesenswert?

=) Jau nun compiliert er es, wie gesagt auch fehlerfrei.
Google findet auf dich schnelle auch nix zu der Lizenzgeschichte... Neu 
installieren wär doof, ich hab nen ewig lahmen Surfstick, und das war 
soweit ich mich erinner ne Onlineinstallation.

von Tobi D. (fanti)


Lesenswert?

dann wechsel die toolchain^^

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.