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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.