Forum: Mikrocontroller und Digitale Elektronik STM32F107VC HSE aufsetzen Reihenfolge


von Felix C. (felix_c13)


Lesenswert?

Hallo Leute

Ich habe hier einen stm32f107vc mit einem 25MHz Quarz. Nun wäre meine 
Frage in welcher ich die Einstellungen machen muss.

Ich habe mir das so gedacht:



//Erstmal HCLK, PCLK1, PCLK2 konfigurieren damit die richtig beziehen
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);

//pre-divs und PLL's aufsetzen
RCC_PREDIV2Config(5);
RCC_PLL2Config(14);
RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2,8);
RCC_PLLConfig(RCC_PLLSource_PREDIV1,8);

//HSE einschalten
RCC_HSEConfig(RCC_HSE_ON);

//PLL einschalten
RCC_PLLCmd(ENABLE);

//Jetzt bin ich mir schon unsicher muss ich jetzt alle Flags überprüfen
//also:
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {}
//Muss ich hier noch alles andere abfragen? Also HSE PLL2 etc.?

//Und noch PLL als Systick auswählen
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);


Peripherals kann ich ja jetzt alle bedenkenlos irgendwann einschalten, 
PCLK und PCLK2 sind ja in Ordnung, oder?



Ich wäre echt dankbar würdet ihr mir ein kurzes Feedback ob das stimmt.


Ausserdem wären da noch zwei weitere Fragen:
RCC_ADCCLKConfig() Wieso sehe ich diese Funktion in der Standard 
Peripheral Library und darf den ADC-Clock verändern. Klingt blöd, aber 
im STMCubeMX darf ich da nix ändern. Ich habe auch schon gelesen, dass 
es eine Takt-Begrenzung für den ADC gibt, da müsste man also schon 
irgendwie was machen müssen???


Noch zum Flash. Ich habe mal gehört, dass man je nach Sysclock da auch 
was mit dem FLash anpassen muss, wegen Waitstates etc. it da was?


Mit besten Grüssen

Felix

von hp-freund (Gast)


Lesenswert?

Moin,

also wenn Du schon STM32CubeMX benutzt haben sich eigentlich alle Fragen 
erledigt. Auch der ADC Takt lässt sich ändern.

Ist deine Version vielleicht antik?
Aktuell in der 4.12.0 ist alles was Du suchst.

von hp-freund (Gast)


Lesenswert?

Ach so, die lock/unlock Funktion - rechte Maustaste - kennst Du?

von Felix C. (felix_c13)


Lesenswert?

Hallo, "danke" für die Antwort.

hp-freund schrieb:
> also wenn Du schon STM32CubeMX benutzt haben sich eigentlich alle Fragen
> erledigt. Auch der ADC Takt lässt sich ändern.

Ok, das erstaunt mich jetzt. Eigentlich wird man hier blöd angemacht 
wenn man farbige GUI's, Sprachen über Assembler benutzt oder sich gar an 
Arduino wagt und jetzt sagst du mir ich soll nen Codegenerator benutzen, 
ok...

Hatte eigentlich schon mit der Antwort gerechnet.


Das Problem ist, dass ich die HAL-Library nicht besonders mag und da 
jetzt auch nicht ewig wühlen wollte. Ich wollte gerne mal sehen wie mans 
richtig macht. Standard Peripheral Library ist ja quasi als würde man 
die Bits selber setzen.

Es prahlen ja immer alle, dass sie auf Librarys scheissen und alle Regs 
selber setzen, dachte eig, dass das ne einfache Frage wäre.

von Felix C. (felix_c13)


Lesenswert?

PS: Das mit dem ADC habe ich herausgefunden. Der Cube blockt die 
EInstellung des ADC-Clocks, solange man keinen ADC im Projekt hat.

Aber ich benutze den Cube eigentlich auch nur, da man dort alles ganz 
übersichtlich hat. Nicht um Code zu generieren.

von hp-freund (Gast)


Lesenswert?

Felix C. schrieb:
> Nicht um Code zu generieren.

Na ja,

auch wenn Du es nicht verwenden willst, solltest Du doch mal einen Blick 
in die erstellte main.c, besonders in die Funktion SystemClock_Config() 
werfen.

Ob bunte GUI oder nicht, wenn es sinnvoll ist, warum nicht.

von hp-freund (Gast)


Lesenswert?

Noch etwas:
wenn Du den HAL_ Funktionen folgst, kannst Du diese auch "auflösen".

von Felix C. (felix_c13)


Lesenswert?

hp-freund schrieb:
> wenn Du den HAL_ Funktionen folgst, kannst Du diese auch "auflösen".

Danke für den Tipp, ich nehme mal an du benutzt auch Keil oder 
ähnliches, das geht ja nicht überall.

Dennoch wäre ich dankbar für ne Rückmeldung bezüglich meines 
urspürnglichen Codes, weil ich die Hal-Funktionen nicht so übersichtlich 
finde und da jetzt nicht ewig suchen will.

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.