Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
start [2019/11/25 15:23] – huwi | start [2020/04/21 11:52] – huwi | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
{{ : | {{ : | ||
- | ====== aktueller Hinweis ====== | + | ===== aktueller Hinweis ===== |
- | + | ||
- | **< | + | |
- | + | ||
- | [[https:// | + | |
- | --------------------------------------- | + | |
+ | **< | ||
+ | | ||
===== Meinen STM32 einfach und modern programmieren ===== | ===== Meinen STM32 einfach und modern programmieren ===== | ||
- | Dieses Tutorial wendet sich an Leser, die bereits über Kenntnisse einer beliebigen Programmiersprache verfügen und sich auch mit der objektorientierten Programmierung von ARM Mikrocontrollern beschäftigen möchten. | + | Ihr möchtet nicht mit einem alten 8 Bit Controller sondern gleich mit dem aktuellen Stand der Technik |
- | Es ist kein C++ oder ARM-Programmier-Tutorial im engeren Sinne und erhebt daher keinen Anspruch auf Vollständigkeit oder Allgemeingültigkeit in diesen Bereichen. Hier soll sich speziell mit ausgewählten Aspekten für den **einfachen Einstieg | + | |
- | + | ||
- | >< | + | |
- | + | ||
- | Ausgewählte Bereiche dieses Tutorials sind speziell | + | |
- | + | ||
- | //Viel Spaß mit diesem | + | |
- | + | ||
- | ===== Einleitung ===== | + | |
- | ==== Unterüberschrift ==== | + | |
- | + | ||
- | + | ||
- | Die Objektorientierung ist ursprünglich angetreten, das Programmieren einfacher | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | >< | + | |
- | // " | + | |
- | RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); | + | |
- | GPIO_InitTypeDef | + | |
- | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; | + | |
- | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; | + | |
- | GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; | + | |
- | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; | + | |
- | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; | + | |
- | GPIO_Init(GPIOD, | + | |
- | GPIO_SetBits(GPIOD, | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | >< | + | |
- | // objektorientierte Schreibweise ///////////////////////////////// | + | |
- | Led ledGreen; | + | |
- | ledGreen.config(GPIOD, | + | |
- | ledGreen.on(); | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Ich glaube dieses kleine Beispiel zeigt deutlich, dass eine objektorientierte Vorgehensweise und Programmierung zu wesentlich verständlicherem Quellcode führen kann. Man könnte auch sagen, dass man das Ziel der Objektorientierung erreicht hat, wenn sich der Programmcode wie Klartext lesen lässt. Wir wollen uns von Bedenken und inneren | + | |
- | + | ||
- | > **„Jede neue Sprache ist wie ein offenes Fenster,\\ | + | |
- | das einen neuen Ausblick auf die Welt eröffnet\\ | + | |
- | und die Lebensauffassung weitet.“**\\ < | + | |
- | + | ||
- | ====== Ein paar theoretische | + | |
- | Bevor Sie in die praktische Seite des Tutorials abtauchen, sollten Sie (müssen aber nicht) folgende theoretischen | + | |
- | * [[Basiskonzepte]] | + | |
- | * [[objektorientierte Programmiersprachen]] | + | |
- | * [[Grafische Programmierung mit der UML]] | + | |
- | + | ||
- | ====== Voraussetzungen zur praktischen Arbeit====== | + | |
- | Das Durcharbeiten dieses Tutorials funktioniert am besten mit der geeigneten | + | |
- | * [[Hardware]] und | + | |
- | * [[Entwicklungsumgebung]] sowie einer kleinen | + | |
- | * [[Einkaufsliste]]. | + | |
- | + | ||
- | ====== Erste Schritte im klassischen C ====== | + | |
- | Die Programmierung | + | |
- | Falls Sie lieber gleich objektorientiert in C++ und UML anfangen möchten, dann überspringen Sie diesen Abschnitt einfach. | + | |
- | * [[Grundstruktur|Grundstruktur einer einfachen ARM Anwendung]] | + | ==== Es ist absolut möglich auch als unerfahrener Anfänger sich in die aktuelle Welt der Mikrocontroller einzuarbeiten. ==== |
- | * [[Hallo C|Hallo ARM C]] | + | |
- | * [[Einfache Ein- und Ausgaben mit dem ARM]] | + | |
- | * [[SystemTickC|Der SystemTick | + | |
- | * [[ARM Interrupts in C]] | + | |
- | * // | + | |
- | ====== Erste Schritte in C++ und der UML ====== | ||
- | So, jetzt schalten wir ein paar Gänge höher. Zum einen arbeiten wir in den nächsten Abschnitten objektorientiert und benutzen als Entwicklungsumgebung keinen herkömmlichen Zeileneditor, | ||
- | * [[Grafische | + | Dafür haben wir dieses Tutorial vollständig überarbeitet. Die klassische und oft auch sehr Zeit und Nerven raubende |
- | * [[Grundstruktur mit UML|Grundstruktur einer objektorientierten Anwendung]] | + | |
- | * [[Hallo UML|Hallo ARM C++]] | + | |
- | * [[Button und LED|Mit den Klassen Button und LED weiter arbeiten]] | + | |
- | * [[SystemTickUML|Der SystemTick in C++]] < | + | |
- | * [[Tempos|Tempos, die Template-Library für den STM32 anwenden | + | |
- | ====== Anwendungsbeispiele ====== | + | ===== Zu den Tutorials |
- | * [[UASRT|Kommunikation mit dem PC]] < | + | * [[mySTM32 Board light Tutorial]] ... mit weniger als 20€ loslegen |
- | * [[ADC|Analogdaten erfassen]] < | + | * [[STM32F407 Discovery Tutorial]] ... mit voller Power von Anfang an |
- | * [[MOTION|Den Beschleunigungssensor nutzen]] < | + | * [[das alte Tutorial]] ... etwas old School aber auch nicht schlecht |
- | * [[SDIO|Daten auf eine SD-Karte speichern]] < | + | * [[about]] ... wer steckt hinter dem ganzen hier (investigative Aufdeckung der finsteren kommerziellen Interessen hinter diesem Tutorial) |
- | ====== | + | ===== aktueller Hinweis |
- | * [[ein kleines Projekt]] < | + | |
- | * [[mit_dem_zustandsdiangramm_programmieren|mit dem Zustandsdiagramm programmieren]] < | + | |
- | * [[http:// | + | |
- | * //[[das myEthernet Framework mit dem STM32]] < | + | |
- | * [[Programmierung anderer Controller]] | + | |
- | * **Das MK3-Grafik-Display am STM32** | + | |
- | * // | + | |
- | * // | + | |
- | * [[http:// | + | |
- | * [[http:// | + | |
- | * [[http:// | + | |
- | * [[Das STM32F0 Discovery|Das STM32F051 Discovery]] | + | |
- | * [[Das STM32L100 Discovery|Das STM32L152 Discovery]] | + | |
- | * [[Das STM32F100 Discovery]] | + | |
- | * [[Das STM32F3 Discovery|Das STM32F303 Discovery]] | + | |
- | * [[Das STM32F401 Discovery]] | + | |
- | * [[Das STM32F429 Discovery]] | + | |
- | * [[Das STM32F030 Nucleo]] | + | |
- | * [[Das STM32L152 Nucleo]] | + | |
- | * [[Das STM32F103 Nucleo]] | + | |
- | * [[Das STM32F401 Nucleo]] | + | |
- | | + | **< |
+ | |