Forum: Mikrocontroller und Digitale Elektronik STM32 CrossWorks LED Einschalten


von C. H. (hedie)


Lesenswert?

Hallo Zusammen...

Ich habe mir ein STM32 Board zugelegt mit einem STM32F103 darauf

Ich verwende derzeit CrossWorks in der 30Tage test version... bin bisher 
sehr zufrieden mit der umgebung... Den JTAGKey hat die IDE problemlos 
erkannt....

Nun habe ich jedoch eine grundsätzliche fraage... wie kann ich eine 
einzelne LED welche an GPIOB hängt ein bzw. ausschalten?

Vielen Dank schonmal...

von (prx) A. K. (prx)


Lesenswert?

Hast du es schon versuchst und bist du gescheitert, oder hast du 
überhaupt keinen Plan?

Es gibt bei ST eine Library und Beispielcode.

von (prx) A. K. (prx)


Lesenswert?

Einmal posten sollte reichen, zweimal nervt.

von (prx) A. K. (prx)


Lesenswert?

Eines gilt es bei den STM32 generell zu beachten: Von Haus aus sind die 
meisten Peripheriemodule ohne Takt. Den gilt es erst einmal 
einzuschalten (RCC), sonst rührt sich nichts.

von C. H. (hedie)


Lesenswert?

Hallo Zusammen...

Es war keine absicht zweimal zu posten... wollte beim anderen Post 
lediglich darauf hinweisen das ich das board erhalten habe...

Ich habe es bereits sehr intensiv versucht...

In einem Beispielprogramm habe ich folgenden Code entdeckt...
1
 GPIO_WriteBit(GPIOB,GPIO_Pin_8  ,Bit_SET);

Jedoch meckert Crossworks gleich das er GPIO_WriteBit nicht kennt...
Ich habe einfach bei Crossworks Datei -> NeuesProjekt -> Generic -> 
Generic STM32F10X -> An Executable for STMicroelectronics STM32F10x 
ausgewählt und die standard parameter belassen....

Muss ich noch etwas bestimmtes Includen?

Kennt jemand ein gutes Tutorial oder sonstige seiten wo etwas über RCC 
etc.. Beschrieben ist und wie man diesen Einstellt?

Besten Dank schonmal

von (prx) A. K. (prx)


Lesenswert?

Solche Funktionen findest du unter STM32F10x_StdPeriph_Lib bei
http://www.st.com/mcu/familiesdocs-110.html#Firmware

von C. H. (hedie)


Lesenswert?

Vielen Dank...

Da git es ja nun viele header Dateien welche man includen könnte...
Damit ichs nicht ausprobieren muss und die chance zu Scheitern wieder 
sehr gross ist, frage ich einfach mal...

Welche müsste oder muss ich den includen damits sicher klappt?

Und wie versorge ich die einzelnen Peripherie teile mit einem Takt?

Besten Dank

von (prx) A. K. (prx)


Lesenswert?

Wenn du statt selber zu lesen jede einzelne einfache Frage zu einem 
STM32 per Forum beantwortet kriegen willst, dann dauert das Monate und 
du verschleisst etliche entnervt abspringende Leute.

1) Doku vom STM32 lesen, und zwar die Reference.
2) Doku/Helpfile von der Firmware-Lib lesen.
3) Vorhandene Demos mit (1) und (2) korrelieren und verstehen.

So funktioniert das in der Branche nun einmal.

von C. H. (hedie)


Lesenswert?

ok Vielen Dank

ich werde mein bestes tun :)

von (prx) A. K. (prx)


Lesenswert?

PS: Der Insider's Guide von Hitex könnte auch weiterhelfen:
http://www.st.com/mcu/files/mcu/1221142709.pdf

von C. H. (hedie)


Lesenswert?

Ich habe nun alles mögliche durchgeschaut und versucht...

Doch leier krieg ich es nicht hin...

Mein aktueller Code Sieht so aus:
1
#include "stm32f10x.h"
2
3
4
//void RCC_Configuration(void);
5
6
void main(void)
7
{
8
  
9
  
10
  
11
  while(1)
12
  {
13
    RCC_APB2ENR_IOPBEN;
14
15
    GPIOB->ODR |= 0x00000100;
16
17
  }
18
   
19
}

In diversen beispielen steht z.b. #inlucde stm32f103x_EVAL.h etc...
doch ich möchte keine vorgefertigten Funktionen zum einstellen der 
Parameter nutzen... doch selbst diese beispiele funktionieren nicht da 
immer irgendwelche daten fehlen...

Ich habe das reference dokument mal angeschaut und mich eingelesen...
Ich weiss nun das man für jeden Peripherie teil den clock eigens ein bzw 
ausschalten kann. auch weiss ich das ich zuerst mal definieren muss, 
woher der clock den kommt ob pll oder nicht etc...

Doch wass ich wieder nirgends gesehen habe ist wie ich einen Wert in ein 
Register schreiben kann... Den offenbar kann man beim STM32 ja nicht 
einfach wie bei den AVR's zb RCC_APB2ENR = 0x00000008 Schreiben und 
damit hat sichs... Man muss ja noch die Registe adresse angeben oder?

Also ich bin ein bisschen ratlos... Könnte mir niemand ein ganz simplen 
beispiel code posten wo das wichtigste konfiguriert wird... Wenn ich ma 
ein funktionierendes Beispiel habe kann ich leicht selbst 
weiterfahren...


Vielen Dank schonmal

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.