mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32F4 Starthilfe


Autor: ST (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich muss hier leider mal ein bischen Frust von der Seele schreiben... 
vielleicht geht es ja jemandem genauso und vielleicht hat jemand meine 
Phase gerade hinter sich gebracht und kann mit Rat und Tat zur Seite 
stehen...

Arbeite mich gerade in die STMicro Controller STM32F4 ein und wechsele 
munter zwischen Projektansätzen mit der Cube Software und solchen mit 
nativem leeren Projekt in der SW4STM32 hin und her...

Problem ist dabei irgendwie:
Kein einziges Projekt läuft wirklihch ansatzfrei vom Compilieren weg...
Dauernd fehlen irgendwelche Projektverzeichnisse oder sie sind falsch 
eingerichtet, Compilerpfade sind nicht gesetzt und so weiter und so 
fort.

Kein einziges Beispielprojekt läuft ohne Comilerfehler vom Stapel weg...

Mache ich irgendetwas grundlegendes falsch?

Selbst die durchweg gute Webeite von dem U.Becker weist durchweg 
veraltete Bibliotheken auf, die nur noch mit HAL-Treibern des Jahres 
~2013 arbeiten, neu erzeugte Projekte können mit den Bibliotheken schon 
garnichts mehr anfangen...

Suche ich an den falschen stellen, oder welche Beispiele könnt ihr 
vielleicht empfehlen?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin ein konservativer alter Knacker und benutze deswegen Coocox 
1.7.7 mit Std.Peri.Lib.
Coocox bastelt einem ein recht ansehnliches Projektverzeichnis zusammen, 
wenn man weiss, was man möchte (also z.B. nur GPIO, oder den ADC, usw.) 
so das ein Projekt nur ein paar Minuten bis zur ersten Blink LED 
braucht.
Cube ist bestimmt toll, aber für so eine kleine MC Kiste mir persönlich 
schon zu abstrahiert - das ist ja kein 3D Spiel für Windows, sondern nur 
ein MC :-P
Mit der o.a. IDE lassen sich z.B. auch Uwe B.s Libraries ohne Probleme 
bauen und benutzen.

Das Durcheinander bei den IDE für STM32 ist schon recht ansehnlich, von 
Keil und Konsorten mal ganz abgesehen - deswegen halte ich mich da auch 
raus.

: Bearbeitet durch User
Autor: Lothar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ST schrieb:
> Kein einziges Beispielprojekt läuft ohne Comilerfehler vom Stapel weg

Das ist bei den LPC ARM deutlich anders hier kommt jedes Eval Board mit 
100 Beispielen für Eclipse/GCC und KEIL und IAR die sofort laufen:

http://www.nxp.com/products/microcontrollers-and-p...

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ST,

bisher hatte ich solche Probleme noch nicht.
Du hast 2 Möglichkeiten die STD Lib oder die HAL Lib zu nutzen.
Beide haben wenn du die komplette bei ST runter lädst einige Beispiele 
für diverse IDEs enthalten. Ich nutze den IAR zu Hause in der 32k 
begrenzten Version.

Mittlerweile baue ich mir die Projekte selbst zusammen und orientiere 
mich an den Beispielen aus der Lib.

Was bisher auch immer funktioniert hatte war ein Grundprojekt mit dem 
CubeMx für IAR zu erzeugen, wo je nach tiefe einiges initalisiert wird 
und gleich funktionierte.

Welche IDE nutzt du denn?

Autor: ST (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
ich nutze die SW4STM32 von AC6.

Das ist, soweit ich es überblicke, die einzige IDE, die tatsächhlich 
100% Freeware ist und offiziell von ST unterstützt wird.

Autor: Gaukler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ST schrieb:
> Problem ist dabei irgendwie:
> Kein einziges Projekt läuft wirklihch ansatzfrei vom Compilieren weg...

Schau Dir mal die wordclock24 hier im Forum an. Toll strukturiertes, gut 
kommentiertes Projekt mit vielen Facetten für STM32 ... und ließ sich 
nach dem Download sofort problemlos compilieren.

Autor: hp-freund (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
ST schrieb:
> ich nutze die SW4STM32 von AC6.

Das ist sehr vernünftig.
Zusammen mit STM32CubeMX eine gute Sache.
Bin auch gerade dabei für ein Nucleo F7 alle Hardware in kleinen 
Einzelprojekten zu erforschen.

LED, Taste, RS232 und selbst Webserver mit CGI und SSI lassen sich in 
kurzer Zeit bedienen.
Wenn man sich an ein paar Grundlagen hält kann man auch später noch 
einmal CubeMX aufrufen und so beliebig alle kleinen Projekte 
kombinieren.

Code Begrenzung ist nicht das was man dabei will.

Autor: F. F. (foldi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Ich bin ein konservativer alter Knacker

Gibt ältere. Aber interessant, dass du auch ARM dran bist.🌝

Autor: ST (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht noch eine kleine Frage zu dieser Antwort:

>Du hast 2 Möglichkeiten die STD Lib oder die HAL Lib zu nutzen.



Ist das eine strikte entweder oder Frage, oder werden die beiden 
Librarys auch kombiniert genutzt und worin unterscheiden sie sich?


In beiden Fällen soll doch derselbe Controller programmiert werden, 
warum also werden dann zwei unterschiedliche Librarys ins Spiel 
gebracht?


mfg

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die HAL ist einfach abstrakter als die STD.
Wenn Du mal eine HAL Funktion verfolgst, wirst Du auf die gleichen 
Befehle stossen.

HAL hat einfach nur den Vorteil das man "meist" auch die STM32 Familie 
wechseln kann ohne gross etwas anzupassen.

Autor: W.S. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
ST schrieb:
> Kein einziges Beispielprojekt läuft ohne Comilerfehler vom Stapel weg...
>
> Mache ich irgendetwas grundlegendes falsch?

Ja. Jedenfalls mMn.

Du tingelst zwischen dem Benutzen diverser mehr oder weniger schlecht 
vorgekauter Beispiele, aufgebauschter HAL-Libs und anderem Zeugs herum, 
ohne tatsächlich einen eigenen Plan zu haben, was du tatsächlich tun 
willst.

Beispiele sind allenfalls zum verstehenden Lesen da, aber nicht zum 
direkten Benutzen. Oftmals sind sie jedoch nicht wirklich verständlich 
und noch öfter sind sie einfach nur da, um den Leuten irgendwelche 
verquaasten Libs anzudrehen.

Wer nicht gelernt hat, sienen Chip selbst aufzusetzen und sich 
stattdessen auf Cube oder St-Lib oder CMSIS oder sonstwelchen Strunz 
einläßt, der ist anschließend mit beiden Ohren dort angenagelt.

Gleiches gilt für Leute, die zu doof sind, die zugrunde liegende 
Hardware und deren Register zu verstehen und direkt zu programmieren 
oder wenigstens das winzige bissel an ARM-Assembler zu lernen, was man 
braucht, um sich seinen Startupcode selber aufzusetzen - und die genau 
deshalb das Großmaul herauskehren "sowas hat man heutzutage ja nicht 
nötig".."dazu hat man ja die XYZ_InitStructure".."sowas macht doch Cube 
für mich viel besser" und so weiter. Es ist das Unverständnis, was so 
spricht.

Mein Rat wäre, zu allererst das richtige Benutzen der eigentlichen Tools 
zu erlernen, also Compiler bis Linker. Wenn du das kannst, dann 
relativiert sich die Not, den Overhead einer IDE bedienen zu müssen. Als 
nächstes wäre das Verzichten auf Nachäffen von Beispielen dran. Denk dir 
deine eigenen Projekte aus und ziehe sie ohne irgendwelche HAL's und 
dergleichen durch. Nur so wirst du potent mit der Zeit.

Nochwas: Ich mache mir für jedes Projekt ein separates Verzeichnis - und 
dort kommt alles hinein, was man zum Projekt braucht - und zwar plain, 
also keine weiteren Unterverzeichnisse. Das ergibt Includes ohne 
Pfad-Getingel und entkoppelt das Projekt vom Rest der Welt. Sowas macht 
die Sache viel einfacher als irgendwelche verzwickten 
Verzeichnisstrukturen, zu denen eigentlich alle IDE's neigen.

W.S.

Autor: W.S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ST schrieb:
>>Du hast 2 Möglichkeiten die STD Lib oder die HAL Lib zu nutzen.
>
> Ist das eine strikte entweder oder Frage, oder werden die beiden
> Librarys auch kombiniert genutzt und worin unterscheiden sie sich?

tertium datur.

Man kann auch beide NICHT benutzen. Darin unterscheiden sie sich nicht.

W.S.

Autor: Franklin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
W.S. schrieb:
> Man kann auch beide NICHT benutzen.

Man kann sich auch das Leben unnötig schwer machen. Jeder nach seinem 
Gusto.

Autor: stm23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Entwicklungsumgebung ist jetzt auch Atollic True Studio frei 
verfügbar. Das funktioniert normalerweise "out of the box".
Mit den STM32Cube Treibern (HAL) kann man arbeiten, muss aber nicht.
Teilweise macht man sich damit das Leben schwer, manchmal ist es 
nützlich...
Wenn du dir von ST die STM32Cube-Library runter lädst, sind da schon 
sehr viele fertige Beispiel-Projekte drinnen.

Autor: Chris K. (deadeye5589)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir die Bare Metal Variante von openSTM32 ins Eclipse 
integriert. Läuft einwandfrei. Am Anfang kann man auswählen ob man STD 
oder HAL Lib nutzen will. Dann sind bereits alle notwendigen Includes im 
Projekt vorhanden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.