Hallo,
ich glaube, CubeMX erzeugt fehlerhaften Code zur Konfiguration des
Systemtaktes.
Eigentlich wollte ich die USB Library von Cube HAL auf einem
STM32F103C8T6 Board aus China ausprobieren. Allerdings blinkt meine LED
nicht und Windows kann die USB Device-ID nicht abfragen.
Um das Problem weiter einzugrenzen, habe ich den USB Kram mal raus
gelassen. Die LED blinkt immer noch nicht. Folgendes habe ich gemacht:
1) Neues Projekt mit CubeMX erstellt.
Prozesor ausgewählt, Debugging via SWD eingestellt, HSE Oszillator
aktiviert, PC13 als Ausgang für die LED eingestellt (Pinout.png).
2) Clock Configuration: 8Mhz HSE mit 6x PLL = 48Mhz
(Clock-Configuration.png)
3) In die Hauptschleife habe ich folgendes eingefügt:
Die LED bleibt jedoch dunkel.
Dann habe ich die Takt-Konfiguration geändert: HSI/2 mit 12x PLL = 48Mhz
(Clock-Configuration-HSI-geht.png)
Jetzt blinkt die LED im 1 Sekunden Takt. Daher dachte ich zuerst, das
Board (bzw. der Quarz) sei defekt. Aber mein Gegentest mit folgendem
Programm (ohne HAL) läuft einwandfrei:
1
#include <stdint.h>
2
#include "stm32f1xx.h"
3
4
// This variable is used by some CMSIS functions
5
uint32_tSystemCoreClock=8000000;
6
7
// Milliseconds counter
8
volatileuint32_tsystick_count=0;
9
10
11
voidSysTick_Handler(void)
12
{
13
systick_count++;
14
}
15
16
17
// Called by Assembler startup code
18
voidSystemInit(void)
19
{
20
// Enable HSE oscillator
21
SET_BIT(RCC->CR,RCC_CR_HSEON);
22
23
// Wait until HSE oscillator is ready
24
while(!READ_BIT(RCC->CR,RCC_CR_HSERDY)){}
25
26
// 48Mhz using the 8Mhz HSE oscillator divided by 1 with 6x PLL, lowspeed I/O runs at 24Mhz
Es scheint also, als ob CubeMX einen fehlerhaften Initialisierungscode
erzeugt. Allerdings ist es mir nicht gelungen, den Knackpunkt zu finden.
Hierbei bitte ich nun um Hilfe. Kann jemand den folgenden von CubeMX
erzeugten Code prüfen?
Dieser Code von CubeMX geht (HSI 8Mhz -> 48Mhz):
Das RCC_OSCILLATORTYPE_HSI ist der Störenfried.
Deshalb gab es dann ein Update auf 4.20.1.
Hat sich aber auch schon wieder erledigt, jetzt ist 4.21.0 aktuell.
Wow, darauf wäre ich nie gekommen. Und ja du hast Recht, es ist die
Version 4.20.0.
Da sehen wir wieder mal, wie super hilfreich diese Codegeneratoren sind
:-(
Mein eigenen von hand zusammengeklöppelter Code geht, während ich durch
den generierten Code nicht durchblicke. Scheiß Frameworks.
Stefan U. schrieb:> Mein eigenen von hand zusammengeklöppelter Code geht, während ich durch> den generierten Code nicht durchblicke. Scheiß Frameworks.
Ich schwöre auf die "Mitte" zwische Bare Metal und "High Level":
SPL hat mich noch nie im Stich gelassen, es geht schnell genug
beim Schreiben und es wird wohl weiterhin für mich funktionieren.
Ich brauche ja nicht jede Woche eine neue Version der SPL so
wie man es gefühlt bei CubeMX bekommt.
Na toll, die Installation der Version 4.21 wird vom Windows Defender
blockiert. Ich bekomme zunehmend der Eindruck, daß STM keine gute
Software bereit stellt - alles nur eilig zusammengklöppelt.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang