Suche etwas Hilfe bei ATM/STM32 Einstieg

#5328064
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
Angehängte Dateien:
#5328069
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 ;)
#5328209
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
#5328277
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

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