Forum: Mikrocontroller und Digitale Elektronik GPIO (LED) am STM32F030


von Marlon W. (Gast)


Lesenswert?

Nabend.

Stehe glaube ich gerade ein wenig auf dem Schlauch.
Möchte gerade einfach nur mal ne LED zum leuchten bringen, leider 
passiert nichts. Habe mir gerade die aktuellste Version von EmBitz 
(1.11) heruntergerladen und muss feststellen, dass auf dem Board ( 
Welches vorher schon einwandfrei funktionierte..) die LED nicht mehr an 
geht.

Habe ich in dem Code was falsch???

[C]
int main(void)
{
    SystemInit();

    SysTick_Config(SystemCoreClock/1000);

    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
    GPIO_InitTypeDef GPIOx;

    GPIOx.GPIO_Mode     = GPIO_Mode_OUT;
    GPIOx.GPIO_OType    = GPIO_OType_PP;
    GPIOx.GPIO_Pin      = GPIO_Pin_5;
    GPIOx.GPIO_PuPd     = GPIO_PuPd_NOPULL;
    GPIOx.GPIO_Speed    = GPIO_Speed_10MHz;
    GPIO_Init(GPIOA,&GPIOx);

    GPIO_WriteBit(GPIOA,GPIO_Pin_5,Bit_SET);


  while(1)
  {

  }
}
[\C]

von Mattias (Gast)


Lesenswert?

Hallo,

wie ist denn die LED angeschlossen? Gegen Vcc oder GND?

Viele Grüße
Mattias

von Marlon W. (Gast)


Lesenswert?

Habe jetzt mal eine LED an einen anderen Pin angeschlossen, das 
funktioniert.

PF0/1 sind ja die Anschlüsse vom Quarz. Kann es sein, dass bevor ich 
diese nutzen möchte, ich erst was umprogrammieren muss?

von Marlon W. (Gast)


Lesenswert?

Marlon W. schrieb:
1
> 
2
> int main(void)
3
> {
4
>     SystemInit();
5
> 
6
>     SysTick_Config(SystemCoreClock/1000);
7
> 
8
>     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
9
>     GPIO_InitTypeDef GPIOx;
10
> 
11
>     GPIOx.GPIO_Mode     = GPIO_Mode_OUT;
12
>     GPIOx.GPIO_OType    = GPIO_OType_PP;
13
>     GPIOx.GPIO_Pin      = GPIO_Pin_5;
14
>     GPIOx.GPIO_PuPd     = GPIO_PuPd_NOPULL;
15
>     GPIOx.GPIO_Speed    = GPIO_Speed_10MHz;
16
>     GPIO_Init(GPIOA,&GPIOx);
17
> 
18
>     GPIO_WriteBit(GPIOA,GPIO_Pin_5,Bit_SET);
19
> 
20
>   while(1)
21
>   {
22
> 
23
>   }
24
> }
25
>

Hier habe ich probeweise mal einen anderen Pin genommen. Mein Problem 
aktuell besteht mit dem PF0

von Mattias K. (mattiask)


Lesenswert?

Klemmt denn an PF0 und PF1 ein Quarz? Und wird der Controller mit der 
internen PLL und externem Quarz betrieben? Sollte das der Fall sein, 
hättest du noch die Möglichkeit den externen Quarz zu deaktivieren und 
auf einen internen Quarz zu wechseln. Dazu gibt es von ST ein Excel 
Tool, mit dem man die Clock Konfiguration über eine Gui einstellt und 
das Excel Tool eine C-Datei ausspuckt.

Viele Grüße
Mattias

von Marlon W. (Gast)


Lesenswert?

Moin.

Nein. Da hängt kein Quarz dran.
Laut Datenblatt sollten die Pins aber normale GPIO´s sein nach Reset?!

von Mattias K. (mattiask)


Lesenswert?

Solltest du die Möglichkeit zum Debuggen haben, schau mal nach ob er 
nach dem GPIO_Init überhaupt weiter macht.

Viele Grüße
Mattias

von Marlon W. (Gast)


Lesenswert?

Ich habe ja an einem anderen Pin auch noch parallel ne LED dran... Das 
ist ja eben das merkwürdige.

von Marlon W. (Gast)


Lesenswert?

Hallo.


Hat denn keiner weiter eine Idee was es noch sein könnte?

von STM32 (Gast)


Lesenswert?

Remap heißt das Zauberwort..... das dient dazu, die alternativen 
Funktionen der Pins freizugeben bzw zu aktivieren. Auf Anhieb weiß ich 
jetzt allerdings bei der F0-Serie auch nicht, was Du da wann wo 
schreiben musst. Aber das steht im Regelfall im Reference Manual.

Beim F10x musst Du die AF-Clocks freigeben, und die entsprechenden, 
jedem Port zugeordneten Refgister entsprechend beschreiben, dann sind 
die alternativen Funktionen verfügbar.

von hp-freund (Gast)


Lesenswert?

Zeig das aktuelle Programm. Keine Kopie von oben bitte, sondern wirklich 
das was Du jetzt benutzt.

von hp-freund (Gast)


Lesenswert?

Welches Board ist das? Eigenbau?

von hp-freund (Gast)


Lesenswert?

Wie ich sehe scheinen dir die Fragen zu trivial um darauf zu antworten.

Trotzdem: ein Nucleo Board z.B. bekommt über PF0 seinen Takt vom 
ST-Link.

von Marlon W. (Gast)


Lesenswert?

Sorry war unterwegs.

Laut Datenblatt ->

Using the HSE or LSE oscillator pins as GPIOs
When the HSE or LSE oscillator is switched OFF (default state after 
reset), the related
oscillator pins can be used as normal GPIOs.
When the HSE or LSE oscillator is switched ON (by setting the HSEON or 
LSEON bit in the
RCC_CSR register) the oscillator takes control of its associated pins 
and the GPIO
configuration of these pins has no effect.
When the oscillator is configured in a user external clock mode, only 
the pin is reserved for
clock input and the OSC_OUT or OSC32_OUT pin can still be used as normal 
GPIO.


Wieso sollte man dann die "AlternateFunction" konfigurieren müssen?
Im Datenblatt steht nichts unter "Alternative Funktion" also geht man 
davon aus, dass es nach dem Reset als normaler GPIO fungiert.

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.