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/02/04 14:10] – Externe Bearbeitung 127.0.0.1 | start [2019/11/27 20:44] – [Weiterführendes] huwi | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{ : | ||
+ | ====== 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. | 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. | ||
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 in die objektorientierte Programmierung von ARM-Mikrocontrollern** auseinandergesetzt werden. | 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 in die objektorientierte Programmierung von ARM-Mikrocontrollern** auseinandergesetzt werden. | ||
- | >>>> | + | >< |
Ausgewählte Bereiche dieses Tutorials sind speziell für Inhaber von einer aktuellen SiSy Lizenz konzipiert. Dem Anwender stehen nach Erwerb des Produktes persönliche Zugangsdaten für diesen Bereich zur Verfügung. Die Daten für die ersten Schritte sind allgemeingültig und im öffentlichen Teil für jeden erreichbar. Im Zusammenwirken mit der kostenlosen [[http:// | Ausgewählte Bereiche dieses Tutorials sind speziell für Inhaber von einer aktuellen SiSy Lizenz konzipiert. Dem Anwender stehen nach Erwerb des Produktes persönliche Zugangsdaten für diesen Bereich zur Verfügung. Die Daten für die ersten Schritte sind allgemeingültig und im öffentlichen Teil für jeden erreichbar. Im Zusammenwirken mit der kostenlosen [[http:// | ||
Zeile 14: | Zeile 18: | ||
//Viel Spaß mit diesem kleinen Tutorial!// | //Viel Spaß mit diesem kleinen Tutorial!// | ||
- | ====== Einleitung ====== | + | ===== Einleitung ===== |
Die Objektorientierung ist ursprünglich angetreten, das Programmieren einfacher zu machen. Praktisch erscheinen jedoch objektorientierte Sprachen für viele eher als Hürde, nicht als Erleichterung. Das muss aber nicht so sein. Assembler und C sind nicht wirklich einfacher als C++. Bilden Sie sich zu folgenden Codeausschnitten selbst Ihre Meinung. | Die Objektorientierung ist ursprünglich angetreten, das Programmieren einfacher zu machen. Praktisch erscheinen jedoch objektorientierte Sprachen für viele eher als Hürde, nicht als Erleichterung. Das muss aber nicht so sein. Assembler und C sind nicht wirklich einfacher als C++. Bilden Sie sich zu folgenden Codeausschnitten selbst Ihre Meinung. | ||
- | >>>< | + | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | >< | ||
// " | // " | ||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, | RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, | ||
Zeile 31: | Zeile 43: | ||
</ | </ | ||
- | >>>< | + | >< |
// objektorientierte Schreibweise ///////////////////////////////// | // objektorientierte Schreibweise ///////////////////////////////// | ||
Led ledGreen; | Led ledGreen; | ||
Zeile 41: | Zeile 53: | ||
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 Hürden nicht abhalten lassen objektorientiert zu arbeiten. Zuerst gilt es, die Voraussetzungen für die Arbeit zu schaffen. | 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 Hürden nicht abhalten lassen objektorientiert zu arbeiten. Zuerst gilt es, die Voraussetzungen für die Arbeit zu schaffen. | ||
- | >>> **„Jede neue Sprache ist wie ein offenes Fenster, | + | > **„Jede neue Sprache ist wie ein offenes Fenster, |
das einen neuen Ausblick auf die Welt eröffnet\\ | das einen neuen Ausblick auf die Welt eröffnet\\ | ||
und die Lebensauffassung weitet.“**\\ < | und die Lebensauffassung weitet.“**\\ < | ||
Zeile 57: | Zeile 69: | ||
* [[Einkaufsliste]]. | * [[Einkaufsliste]]. | ||
- | ====== | + | ======= |
- | Die Programmierung im klassischen C kann man sich ruhig einmal antun. Um so mehr wird man die Klassen aus dem mySTM32 Framework schätzen lernen. Des Weiteren finden sich im Netz auch jede Menge Beispiele in klassischem C. Die folgenden Abschnitte befähigen Sie, sich diese zugänglich zu machen. | + | * [[mySTM32 Board light Tutorial]] |
- | Falls Sie lieber gleich objektorientiert in C++ und UML anfangen möchten, dann überspringen Sie diesen Abschnitt einfach. | + | * [[STM32F407 Discovery Tutorial]] |
- | + | ||
- | * [[Grundstruktur|Grundstruktur einer einfachen ARM Anwendung]] | + | |
- | * [[Hallo C|Hallo ARM C]] | + | |
- | * [[Einfache Ein- und Ausgaben mit dem ARM]] | + | |
- | * [[SystemTickC|Der SystemTick in C]] | + | |
- | * [[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 Programmierung mit der UML|spätestens jetzt in die UML reinschauen]] | + | |
- | * [[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, | + | |
- | + | ||
- | ====== Anwendungsbeispiele | + | |
- | * [[UASRT|Kommunikation mit dem PC]] < | + | |
- | * [[ADC|Analogdaten erfassen]] < | + | |
- | * [[MOTION|Den Beschleunigungssensor nutzen]] < | + | |
- | * [[SDIO|Daten auf eine SD-Karte speichern]] < | + | |
====== Weiterführendes ====== | ====== Weiterführendes ====== | ||
- | * [[ein kleines Projekt]] < | ||
* [[mit_dem_zustandsdiangramm_programmieren|mit dem Zustandsdiagramm programmieren]] < | * [[mit_dem_zustandsdiangramm_programmieren|mit dem Zustandsdiagramm programmieren]] < | ||
+ | * [[Tempos|Tempos, | ||
* [[http:// | * [[http:// | ||
* //[[das myEthernet Framework mit dem STM32]] < | * //[[das myEthernet Framework mit dem STM32]] < | ||
* [[Programmierung anderer Controller]] | * [[Programmierung anderer Controller]] | ||
- | * **Das MK3-Grafik-Display am STM32** | + | * [[Das MK3-Grafik-Display am STM32]] |
- | * // | + | |
- | * // | + | |
- | * [[http:// | + | |
- | * [[http:// | + | |
- | * [[http:// | + | |
* [[Das STM32F0 Discovery|Das STM32F051 Discovery]] | * [[Das STM32F0 Discovery|Das STM32F051 Discovery]] | ||
* [[Das STM32L100 Discovery|Das STM32L152 Discovery]] | * [[Das STM32L100 Discovery|Das STM32L152 Discovery]] | ||
Zeile 106: | Zeile 90: | ||
* [[Das STM32F103 Nucleo]] | * [[Das STM32F103 Nucleo]] | ||
* [[Das STM32F401 Nucleo]] | * [[Das STM32F401 Nucleo]] | ||
- | * //[[Das STM32F072 Nucleo]] < | ||
- | * //[[Das STM32F302 Nucleo]] < | ||
- | * //[[Das STM32F334 Nucleo]] < | ||
- | * //[[Das STM32L053 Nucleo]] < | ||
- | |||
* [[http:// | * [[http:// |