Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
einfache_ein-_und_ausgaben_mit_dem_arm [2019/02/04 14:10] – Externe Bearbeitung 127.0.0.1 | einfache_ein-_und_ausgaben_mit_dem_arm [2019/07/25 15:46] (aktuell) – [Videozusammenfassung] huwi | ||
---|---|---|---|
Zeile 21: | Zeile 21: | ||
Falls das Tutorial-Projekt nicht mehr offen ist, öffnen Sie dies. Legen Sie bitte ein neues kleines Programm an und laden das Grundgerüst ARM C++ Anwendung. Beachten Sie die Einstellungen für die Zielplattform STM32F4-Discovery. | Falls das Tutorial-Projekt nicht mehr offen ist, öffnen Sie dies. Legen Sie bitte ein neues kleines Programm an und laden das Grundgerüst ARM C++ Anwendung. Beachten Sie die Einstellungen für die Zielplattform STM32F4-Discovery. | ||
- | >> | + | > |
Erstellen Sie die Programmkopfdokumentation. Übersetzen und Übertragen Sie das noch leere Programm auf den Controller, um die Verbindung zu testen. | Erstellen Sie die Programmkopfdokumentation. Übersetzen und Übertragen Sie das noch leere Programm auf den Controller, um die Verbindung zu testen. | ||
- | >>>< | + | >< |
// | // | ||
// Titel : Beispiel intelligenter Lichtschalter 1 mit SiSy STM32 | // Titel : Beispiel intelligenter Lichtschalter 1 mit SiSy STM32 | ||
Zeile 44: | Zeile 44: | ||
Rekapitulieren wir noch mal das Blockbild von oben. Man erkennt, dass der RCC-Unit (Reset & Clock Control ) mitgeteilt werden muss, dass GPIOD und GPIOA über den AHB1 mit Takt versorgt werden müssen. Wie bereits im Beispiel // | Rekapitulieren wir noch mal das Blockbild von oben. Man erkennt, dass der RCC-Unit (Reset & Clock Control ) mitgeteilt werden muss, dass GPIOD und GPIOA über den AHB1 mit Takt versorgt werden müssen. Wie bereits im Beispiel // | ||
- | >>>< | + | >< |
// GPIOD Takt einschalten | // GPIOD Takt einschalten | ||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, | RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, | ||
Zeile 60: | Zeile 60: | ||
als Nächstes die Initialisierungsstrukturen für die beiden Ports vorzubereiten. Dazu können zwei Instanzen der Struktur angelegt werden oder nur eine, um diese dann wieder zu verwenden. Wir entscheiden uns für die Wiederverwendung einer Struktur. | als Nächstes die Initialisierungsstrukturen für die beiden Ports vorzubereiten. Dazu können zwei Instanzen der Struktur angelegt werden oder nur eine, um diese dann wieder zu verwenden. Wir entscheiden uns für die Wiederverwendung einer Struktur. | ||
- | >>>< | + | >< |
GPIO_InitTypeDef | GPIO_InitTypeDef | ||
GPIO_StructInit (& | GPIO_StructInit (& | ||
Zeile 67: | Zeile 67: | ||
Jetzt kümmern wir uns um den Ausgang für die LED, PortD Bit15. Dieser muss im Output Mode als Gegentaktstufe, | Jetzt kümmern wir uns um den Ausgang für die LED, PortD Bit15. Dieser muss im Output Mode als Gegentaktstufe, | ||
- | >>>< | + | >< |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; | ||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; | ||
Zeile 78: | Zeile 78: | ||
Kümmern wir uns jetzt um den Eingang für den Taster, Port A Bit0. Der blaue Taster auf dem STM32F4 hat eine kleine Treiberstufe, | Kümmern wir uns jetzt um den Eingang für den Taster, Port A Bit0. Der blaue Taster auf dem STM32F4 hat eine kleine Treiberstufe, | ||
- | >>>< | + | >< |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; | ||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; | ||
Zeile 89: | Zeile 89: | ||
Das Einlesen eines Port-Pin erfolgt mit der Funktion // | Das Einlesen eines Port-Pin erfolgt mit der Funktion // | ||
- | >>>< | + | >< |
if (GPIO_ReadInputDataBit(GPIOA, | if (GPIO_ReadInputDataBit(GPIOA, | ||
</ | </ | ||
Zeile 95: | Zeile 95: | ||
Entsprechend der Auswerung können wir mit den bereits bekannten Funktionen // | Entsprechend der Auswerung können wir mit den bereits bekannten Funktionen // | ||
- | >>>< | + | >< |
GPIO_SetBits(GPIOD, | GPIO_SetBits(GPIOD, | ||
</ | </ | ||
Zeile 101: | Zeile 101: | ||
oder ausschalten: | oder ausschalten: | ||
- | >>>< | + | >< |
GPIO_ResetBits(GPIOD, | GPIO_ResetBits(GPIOD, | ||
</ | </ | ||
Zeile 109: | Zeile 109: | ||
Zuerst wieder der Entwurf in Form von Kommentaren: | Zuerst wieder der Entwurf in Form von Kommentaren: | ||
- | >>>< | + | >< |
// | // | ||
// Titel : ENTWURF intelligenter Lichtschalter 1 in SiSy STM32 | // Titel : ENTWURF intelligenter Lichtschalter 1 in SiSy STM32 | ||
Zeile 161: | Zeile 161: | ||
Nachdem wir den Entwurf in Ruhe rekapituliert haben, kann es an die Umsetzung gehen. Wenn Sie Quelltexte lieber kopieren, können Sie das gern mit dem obigen Entwurf machen, aber die eigentlichen Befehle sollten Sie aus // | Nachdem wir den Entwurf in Ruhe rekapituliert haben, kann es an die Umsetzung gehen. Wenn Sie Quelltexte lieber kopieren, können Sie das gern mit dem obigen Entwurf machen, aber die eigentlichen Befehle sollten Sie aus // | ||
- | >>>< | + | >< |
// | // | ||
// Titel : Beispiel intelligenter Lichtschalter 1 in SiSy STM32 | // Titel : Beispiel intelligenter Lichtschalter 1 in SiSy STM32 | ||
Zeile 239: | Zeile 239: | ||
- Brennen | - Brennen | ||
- | >>> | + | > |
Die blaue LED auf dem STM32F4 Discovery leuchtet jetzt immer solange, wie der blaue Taster gedrückt ist. | Die blaue LED auf dem STM32F4 Discovery leuchtet jetzt immer solange, wie der blaue Taster gedrückt ist. | ||
Zeile 271: | Zeile 271: | ||
Und hier diesen Abschnitt dann auch als Videozusammenfassung. | Und hier diesen Abschnitt dann auch als Videozusammenfassung. | ||
- | >>>< | + | >< |
====== Nächstes Thema ====== | ====== Nächstes Thema ====== | ||
* [[SystemTickC|Der SystemTick in C]] | * [[SystemTickC|Der SystemTick in C]] | ||