Suche etwas Hilfe bei ATM/STM32 Einstieg

OP #5328064
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
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 ;)
OP #5328209
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
Gast #5328233
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.
OP #5328277
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

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.