STM32F107VC HSE aufsetzen Reihenfolge

OP #4394341
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
OP #4394981
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.
OP #4395324
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.

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