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
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 ;)
Danke Pete ! Das habe ich schon alles durch, aber den Syntax will nun Keil gar nicht, nur Fehlermeldungen.... Gerhard
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.