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]
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?
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
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
Moin. Nein. Da hängt kein Quarz dran. Laut Datenblatt sollten die Pins aber normale GPIO´s sein nach Reset?!
Solltest du die Möglichkeit zum Debuggen haben, schau mal nach ob er nach dem GPIO_Init überhaupt weiter macht. Viele Grüße Mattias
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.
Zeig das aktuelle Programm. Keine Kopie von oben bitte, sondern wirklich das was Du jetzt benutzt.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.