Forum: Compiler & IDEs Suche etwas Hilfe bei ATM/STM32 Einstieg


von Gerhard H. (oderlachs)


Angehängte Dateien:

Lesenswert?

Hallo Freunde !

Schon etwa eine Woche quäle ich mich ab, etwas von der ARM 
Programmierung zu verstehen. Nachdem ich vergeblich unter Linux mittels 
Eclipse/CooCocks versucht habe , bin ich auf KeilArm(Win7) umgestiegen, 
wobei mir ja zum Einstig die 32k Freeversion vollends genügt.
Ich habe mir das WaveShare Port103Z  und den Programmer ST-Link von ST 
gekauft. Nun habe ich mich durch einige CodeBeispiele gerangelt und 
musste feststellen, dass wohl jeder Compiler/IDE da wohl anderen Syntax 
verlangt.
Hatte schon in Erwägung gezogen mir Sisy-ARM zuzulegen, aber die Demo 
sagte mir nicht zu....
Egal jedenfalls konnte ich erst mal ein Blink-Beispiel von Keil zum 
Laufen bringen. Aber was für mich immer noch unerforschte Gebiete sind, 
die GPIO's, das Ansprechen, Einstellen usw.

Daraufhin habe ich mir das EBook von R.Jesse bei Amazon fürs Kindle 
gekauft, aber, da sehe ich ja gar nicht durch...Codezeilen , wo man 
nicht weiss was sie bedeuten, um sie anderwärtig zu verwenden nutzen mir 
erst mal gar nix.

Vieleicht ist ein netter User unter uns hier im Forum, der mir mal zu 
der im folgenden Listing(Anhang) hier ein paar Erlärungen machen könnte.

Ich habe die Zeilen mit //???? versehen, es geht fast nur um die 
Einstellung der GPIOs,...LED_Config(...) und BTN_Config(...) wo ich mir 
gar nix unter den angegebenen Werten so vorstellen kann.

Gruss und Dank

Gerhard

von Pete K. (pete77)


Lesenswert?

Vielleicht hilft Dir das hier etwas weiter:
http://diller-technologies.de/stm32.html

von Max D. (max_d)


Lesenswert?

Typ für STM32 + Linux: AC6 SW4STM32.
Lief bei mir direkt ohne viel zu konfigurieren.
Einzig die Einstellungen des Debuggers muss man anpassen wenn nur SWD 
ohne Reset verbunden ist.

Für ganz Faule (wie mich) gibts von ST noch STM32CubeMX mit dem man sich 
die HW-COnfig zusammenklicken kann ;)

von Gerhard H. (oderlachs)


Lesenswert?

Danke Pete !

Das habe ich schon alles durch, aber den Syntax will nun Keil gar nicht, 
nur Fehlermeldungen....

Gerhard

von Pete K. (pete77)


Lesenswert?

Atollic TrueStudio wäre auch noch ein IDE, die gut mit STM32 
zusammenarbeitet.

von Gerhard H. (oderlachs)


Lesenswert?

Ja Pete, habe ich auch schon probiert, mir ging es ja haupsächlich hier 
bei um Hilfe bei der Konfigurierung der GPIO.
Ich glaube ich habe etwas gefunden nun, was auch für mich verständlich 
ist:
http://www.stm32duino.com/viewtopic.php?t=1220#p15500

Mein English ist leider fast = Null, aber wenns gute gemacht ist 
verstehe ich auch englische Seiten ...

Gerhard

von Gerhard H. (oderlachs)


Lesenswert?

Kann leider nicht mehr editieren :(

Habe mich schon jetzt ein wenig(!) eingearbeitet und auch einiges 
verstanden, aber es will mir nicht gelingen den PULL_UP  an GPIO A0 zu 
aktivieren:
hier der org Code der Bt-Config Zeilen:
1
/*----------------------------------------------------------------------------
2
  configer Button pins PA0
3
 *----------------------------------------------------------------------------*/
4
__INLINE static void BTN_Config(void) {
5
6
  RCC->APB2ENR |=  1 <<  2;                    /* Enable GPIOA clock          */
7
  GPIOA->CRL   &= 0xFFFFFFF0;                  /* Configure the GPIO for BTNs */
8
  GPIOA->CRL   |= 0x00000008;                  /* Configure the GPIO for BTNs */
9
// Meine zusätzliche Zeile:
10
  GPIOA->CRL   |= 0x00000001;                  // PullUp PA0 ????  
11
12
}

lt. den Registertabelle/angaben  müsste doch folgende Zeile den PullUp 
für PA0 aktivieren:
GPIOA->CRL   |= 0x00000001;
oder liege ich da falsch ???

Gruss und Dank Gerhard

von Antitroller (Gast)


Lesenswert?

Gerhard H. schrieb:
> lt. den Registertabelle/angaben  müsste doch folgende Zeile den PullUp
> für PA0 aktivieren:
> GPIOA->CRL   |= 0x00000001;
> oder liege ich da falsch ???


Ja, die 0x00000008 ist schon richtig.
Bit 0 und 1 stehen für MODE, und die müssen 00 sein für Input.

von Antitroller (Gast)


Lesenswert?


von Gerhard H. (oderlachs)


Lesenswert?

Danke danke für die Infos !!
habe mich noch etwas eingelesen und es geschafft:
1
/*----------------------------------------------------------------------------
2
  configer Button pins
3
 *----------------------------------------------------------------------------*/
4
__INLINE static void BTN_Config(void) {
5
6
  RCC->APB2ENR |=  1 <<  2;                    /* Enable GPIOA clock          */
7
  GPIOA->CRL   &= 0xFFFFFFF0;                  /* Configure the GPIO for BTNs */
8
  GPIOA->CRL   |= 0x00000008;                  /* Configure the GPIO for BTNs */
9
  GPIOA->ODR   |= 0x00000001;              // Set PA0 Inp&PullUp fuer WSPort103Z
10
  
11
  
12
}

Musste das ODR Register noch bemühen...

Danke allen
Gerhard

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.