stm32l discovery LED 3 und 4 ansteuern

Gast #4008533
Lesenswert?

Hallo Leute,

ich habe da ein winziges Problem(chen). Ich möchte gerne auf dem STM32l 
Discovery die LEDs LD3 und LD4 ansteuern. Leider gelingt mir dies noch 
nicht. Ich habe versucht ein Tutorial im Internet zu finden. Leider 
arbeiten alle, welche ich gefunden habe, mit Controllern der F-Serie und 
nicht der L-Serie. Reference Manuals, Schematics und der gleichen habe 
ich alles.
Ich bin mir allerdings nicht sicher, ob meine Libery wirklich 
vollständig ist. Es wäre schön, wenn mir das mal jemand kurz erklären 
könnte.

Gruß,

gimpel
#4008899
Lesenswert?

gimpel schrieb:
> Ich bin mir allerdings nicht sicher, ob meine Libery wirklich
> vollständig ist.

Ich habe jetzt 2 Anläufe hinter mir (bei mir war es ein STM32F), beim 
ersten Mal bin ich den "offiziellen" Weg gegangen mir Cube Library und 
HAL-Treibern. Als jemand der aus der AVR-Ecke kommt war das der Horror.

Dann ein Abstecher nach Freescale, dort nur mit der einen(!) Headerdatei 
und den blanken Registern gearbeitet, nach einem Tag war ich genauso 
weit (GPIO, ADC, DAC, Timer, Interrupts). Übrigens am Rande: Das 
Freescale Datenblatt war exzellent: alles (wirklich alles) in einem 
Dokument, übersichtlich, keine Überraschungen, kein Kleingedrucktes. 
Alles straightforward aus dem Datenblatt heraus hinein in meinen Code 
und alles funktioniert sofort.

Dann der zweite Anlauf auf STM32, diesmal ebenfalls nur mit den nackten 
CMSIS-Headern und nichts als dem Reference Manual, genauso wie früher 
bei AVR. Viel besser als beim ersten Mal mit dem chaotischen 
HAL-Gestrüpp! Das Reference Manual von ST ist ebenfalls von guter 
Struktur, Übersichtlichkeit und Vollständigkeit (nicht ganz so schön wie 
Freescale und ich brauchte zusätzlich zum Reference Manual noch das 
Product Datasheet für das Pinout und das Alternate Functions mapping, 
also 2 Dokumente statt einem aber ansonsten ok), auch hier war kaum die 
Notwendigkeit zum Googlen, alles was im Reference Manual geschrieben 
steht funktioniert tatsächlich genau so auf Anhieb ohne 
Mißverständlichkeiten oder Lücken.

Moral von der Geschicht: Vergiss die Libraries, Du brauchst sie nicht. 
Was Du brauchst ist etwas Zeit und Geduld, aber das brauchst Du sowieso.
#4009198
Lesenswert?

> Ich möchte gerne auf dem STM32l Discovery die LEDs LD3 und LD4 ansteuern.
> Leider gelingt mir dies noch nicht.

Verzichte auf die Library und arbeite mit dem Reference Manual für die 
Bausteine (also dem 900-Seiten-Dokument, welches für die gesamte 
STM32L1xx-Familie gilt). Besorge dir die ST Library, aber nutze daraus 
nur die Headerfiles, die unbedingt nötig sind (core_cm3.h und 
stm32l1xx.h, sowie Abhängigkeiten). Das machst du nur, damit du 
vernünftig arbeiten kannst, sonst musst du dir die Registeradressen 
selbst raussuchen. ;-)

Ansonsten ist das LED-Einschalten ein Drei-Schritt-Prozess (alles andere 
ist nicht nötig, weil die Reset-Werte stimmen):
(a) Clock für GPIOB einschalten (RCC->AHBENR |= 0x02)
(b) Pins 6 und 7 auf Ausgänge schalten (GPIOB->MODER |= 0x5000)
(c) Pins 6 und 7 auf "high" setzen (GPIOB->ODR |= 0xC0)

Fertig.

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