Hallo, ich versuche hier meine ersten Test-Projekt für das STM32F407 zu starten und bin aber noch nicht mit den grundlegenden Befehlen für die GPIO-Ports und der HAL-Library vertraut und finde leider auch keine übersichtlichen Auflistungen. Ich konfiguriere mit CubeMX und nutze die Atollic-Umgebung. Für mein erstes LED-Projekt möchte ich die blaue LED des Boards toggeln, die auf Pin D15 liegt. Den habe ich als Push-Pull-Output konfiguriert und habe die Clock-Einstellungen (genutzt wird AHB1) mit 16 MHz so gelassen wie sie sind... Für das Ansteuern einer blinkenden LED habe ich im Internet folgenden Code für die main.c-Datei gefunden, den ich entsprechend meinem Ausgang angepasst habe: while (1) {HAL_GPIO_TogglePin(GPIOD,GPIO_Pin_15); HAL_Delay(100); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } Wenn ich aber GPIO_Pin_15 wie oben eingebe, meckert mein Compiler "undeclard(first use in this function)".. wenn ich jedoch nur "15" eingebe, beanstandet er nichts! Warum ist das so? Nichts desto trotz bekomme ich die LED auch beim fehlerlosen Kompilieren nicht zum Blinken! Was hat es mit der HAL-Bibliothek auf sich und stimmt es, dass ich die bei Verwendung von CubeMx gar nicht zwingend brauche oder es sogar ein Fehler ist, sie hier einzubinden?
Dir fehlt ein hfile. Den musst Du includieren, dann kennt er GPIO_PIN_15 bei mir finde ich #define GPIO_PIN_15 ((uint16_t)0x8000) /* Pin 15 selected */ Wenn Du statt 15 (1<<15) eingibst sollte es klappen.
Vor allem Groß/Kleinschreibung beachten. Und wie Martin schrieb, den wirklichen Wert der hinter GPIO_PIN_15 steckt nehmen.
ich hatte ihm vorher keinen eigenen Namen über user label gegeben, da stand dann auch entsprechend nichts in der header-Datei. Nun habe ich ihn Licht genannt und es taucht #define licht_Pin GPIO_PIN_15 #define licht_GPIO_Port GPIOD im Header auf. Jetzt klappt es auch. Aber warum muss ich dem Pin einen eigenen Namen geben?
Musst du nicht, aber wenn es mehr werden und einer licht heisst bleiben nicht viele Fragen offen, oder?
Beitrag #5741184 wurde vom Autor gelöscht.
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.