GPIO (LED) am STM32F030

Gast #4928581
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]
Gast #4928860
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
#4929107
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
Gast #4930441
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.
Gast #4932310
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.

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