STM32 mit STM Cube IDE programmieren

OP #6603790
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte für ein Projekt ein Programm auf meinem STM32F401RE Nucleo 
Board testen.
Komischerweise kriege ich es nicht einmal hin, einen Pin anzusteuern 
(z.B. LED, PA5).
Inzwischen habe ich mein gesamtes Programm gelöscht und meine Main hat 
nur noch folgenden Code innerhalb der while Schleife:
1
HAL_GPIO_TogglePin(GPIOA,5);
2
HAL_Delay(200);

So sieht das Setup des Pins aus (aus Cube MX generiert):
1
GPIO_InitStruct.Pin = LED_Pin;
2
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
3
GPIO_InitStruct.Pull = GPIO_NOPULL;
4
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
5
HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);

Fehler gibt es keine und die Konsole schließt damit ab:
1
Download verified successfully 
2
Debugger connection lost.
3
Shutting down...

woraus ich schließe, dass das Programm i.O. ist und die Verbindung von 
uC und PC passt.

Trotzdem passiert nichts. Ich habe auch schon versucht, einfach nur 
irgendeinen Pin High zu schalten, und den mit einem Multimeter zu 
messen, falls die LED oder die Verbindung kaputt ist. Auch das hat nicht 
funktioniert.
Da muss irgendein ganz simpler Fehler oder eine Kleinigkeit, die ich 
vergessen habe das Problem sein. Kann mir jemand helfen?
#6603808
Lesenswert?
• ▲
▼
Wenn Du in der HAL Pin5 ansteuernn willst erwartet der nicht die 5 
sondern (1<<5)

Also: HAL_GPIO_TogglePin(GPIOA,(1<<5));

wenn du 5 eingibst, sollten 2 pins toggeln, sofern sie konfiguriert 
sind.

Ob LED_Pin richtig definiert wurde kann ich von hier aus natürlich nicht 
sagen, das wird irgendwo in CubeMx gesetzt.


Muss man sich dran gewöhnen, wie an vieles in der HAL.

Martin
#6603835
Lesenswert?
• ▲
▼
Geb deinem Pin zuerst mal im CubeMX einen Namen - z.B. "LED" (re.Klick 
auf den Pin -> User Label)

Jetzt findet du in main.h passende Makros für diesen Pin.

Der Toggle sieht dann so aus:
1
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);

Das läuft einheitlich nach dem selben Schema und hat den Vorteil, daß du 
den Pin jederzeit im CubeMX auf einen anderen Pin ummappen kannst, ohne 
eine einzige Zeile Code ändern zu müssen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.