Forum: Mikrocontroller und Digitale Elektronik stm32l discovery LED 3 und 4 ansteuern


von gimpel (Gast)


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

von Oliver R. (orb)


Lesenswert?

Du bekommst bei ST doch den Quellcode für die Demo, da kannst Du das 
z.B. nachsehen.

von google (Gast)


Lesenswert?

Aus dem user manual des stm32l discovery:

LEDs
...


• User LD3: green LED is a user LED connected to the I/O PB7 of the 
STM32L152 MCU.
• User LD4: blue LED is a user LED connected to the I/O PB6 of the 
STM32L152 MCU.

von google (Gast)


Lesenswert?

... und dazu ein Buch für die Programmiersprache Deiner Wahl ...

von google (Gast)


Lesenswert?

... und ein tutorial ist auch schnell gefunden:

http://mightydevices.com/?p=121

von google (Gast)


Lesenswert?


von google (Gast)


Lesenswert?


von google (Gast)


Lesenswert?


von Bernd K. (prof7bit)


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.

von S. R. (svenska)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.