LoRaWAN UDP Packet Forwarder 1
17.12.2024
Elektronik | Funk | Software
Der Technik-Blog
Wie von Arduino gibt es auch von STM einen IDE, mit dem die Mikrocontroller und Development Boards programmiert werden. STM hat hierzu den CubeIDE entwickelt, den man nach einer Registrierung bei STM herunterladen kann. In diesem Artikel zeigen wir, wie der CubeIDE installiert wird und wie ein einfaches Programm auf einen Nucleo (STM32F446RE) installiert wird.
Der CubeIDE kann von der Herstellerseite nach einer Registrierung heruntergeladen werden. Der CubeIDE ist für Windows, Mac und Linux erhältlich. Die Softwareinstallation läuft gleich ab, wie bei jeder üblichen Software durch starten der Setup-EXE.
Wird das Board an den Computer angeschlossen, wird sofort der Flash-Speicher erkannt. Für diesen wird kein Treiber benötigt. STM liefert die Treiber mit dem CubeIDE mit. Man wird während der Installation gefragt, ob man die Treiber installieren will. Empfohlen wird die Installation aller Treiber.
Wenn die Installation erfolgreich war, wird das Programm automatisch gestartet. Man wird nach den Speicherort vom Workspace gefragt. Man kann hier den vorgeschlagenen Pfad lassen und diesen auch für alle Projekte verwenden.
Wenn im CubeIDE ein neues Projekt erstellt wird, muss zuerst das Board definiert werden. In unserem Beispiel wird ein Nucleo Board verwendet mit folgenden Prozessor: STM32F446RE. Die exakte Bezeichnung vom Prozessor findet man am Chip selbst oder an einem Sticker auf dem Board, dass sich in der Nähe vom Chip befinden sollte. Der CubeIDE zeigt neben den Typ auch einige Eigenschaften wie Flash-Größe, RAM, Anzahl IOs und die Taktfrequenz an.
Nachdem der exakte Mikrocontroller angeben wurde, müssen noch einige Parameter für die Programmierung angegeben bzw. bestätigt werden. Zuerst wird dem Projekt ein Name vergeben. Weiters wählt man die Programmiersprache zwischen C und C++ aus. C++ ist für Anfänger die einfachere Sprache, da sich diese ähnlich verhält, wie beim Arduino IDE. Wir haben uns hier jedoch für C entschieden. Die restlichen zwei Parameter kann man, wie vom Programm vorgeschlagen übernehmen.
Nachdem im CubeIDE das Projekt erstellt wurde, wird eine grafische Übersicht vom Chip erzeugt. In dieser Ansicht definiert man die Funktion eines einzelnen Pins. Da wir ein einfaches Blink-Beispiel mit der On-Board LED erstellen wollen, muss der Pin PA5 als GPIO-Output definiert werden.
In der Software ist es möglich, dass man jeden einzelnen Pin ein Label vergibt. Über den Quellcode kann dann anstatt vom Pin auch das Label angesprochen werden, was im Hintergrund an den definierten Pin anspricht. In unserem Blink-Beispiel wird daher der OnBoard-LED auf Pin PA5 das Label "LED" vergeben.
Im Projektordner befindet sich ein Unterordner (Src), der die Datei "main.c" beinhaltet. In dieser Datei befindet sich das Hauptprogramm, dass später auf den Controller geladen wird. Um das Blink-Beispiel zu erzeugen, müssen die zwei grün markierten Zeilen aus dem folgenden Screenshot in die While-Schleife der Main-Datei kopiert werden.
Je nach Firmware-Version vom Board kann es vorkommen, dass diese zum Zeitpunkt der Lieferung bereits veraltet ist. Dann ist es nicht möglich, eine neues Programm über den CubeIDE auf das Board zu laden. Der CubeIDE installiert in diesem Fall das Firmware-Upgrade auf das Board.
Das Upgrade dauert in der Regel ein bis zwei Minuten. Danach startet das Board automatisch neu und es sollte möglich sein, ein neues Programm auf das Board zu laden.
Über den Debug-Button in der Software wird das Programm auf den Controller hochgeladen. In der Statuszeile zeigt der IDE die aktuellen Vorgänge an und informiert ob der Upload erfolgreich war oder nicht. Um das neue Programm zu starten drückt man kurz auf den Reset-Button am Board und dann sollte die LED blinken.
In diesem Artikel geht es um den Bau eines einfachen analogen Dämmerungsschalters mit einigen wenigen Bauteilen. Bei Dunkelheit wird ein Relais aktiviert.
WeiterlesenIn diesem Artikel geht es um den Bau einer kleinen Wetterstation, die ihre Daten über LoRa an einen ESP32 sendet, der die Daten auf einem OLED-Display anzeigt
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved