STM32F107VC HSE aufsetzen Reihenfolge

OP #4394341
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
Gast #4394802
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.
OP #4394981
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 #4394986
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.
Gast #4395021
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.
OP #4395324
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

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.