E-Book, Deutsch, 434 Seiten
Reihe: mitp Professional
Jesse STM32
2. Auflage 2022
ISBN: 978-3-7475-0453-6
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 1 - PDF Watermark
Das umfassende Praxisbuch.ARM-Mikrocontroller programmieren für Embedded Systems
E-Book, Deutsch, 434 Seiten
Reihe: mitp Professional
ISBN: 978-3-7475-0453-6
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 1 - PDF Watermark
Zielgruppe
Softwareentwickler für Embedded Systems, Maker, Elektronik-Bastler
Autoren/Hrsg.
Weitere Infos & Material
1;Cover;1
2;Titel;5
3;Impressum;6
4;Inhaltsverzeichnis;7
5;Einleitung;13
5.1;Worum es geht;14
5.2;Warum STM32F4?;15
5.3;Zielgruppe dieses Buches;16
5.4;Voraussetzungen;17
5.5;Aufbau des Buches;18
5.6;Einsatz von Bibliotheken?;23
5.7;Entwicklungsumgebungen;26
5.8;Hinweis zu den Prozessorregistern;26
5.9;Support;27
5.10;Anmerkungen des Autors;27
6;Teil I: Grundlagen;29
6.1;Kapitel 1: STM32F4xx-Mikrocontroller;31
6.1.1;1.1 Überblick über die STM32F4xx-Familie;31
6.1.2;1.2 Der STM32F446;33
6.1.2.1;1.2.1 Varianten des STM32F446;33
6.1.2.2;1.2.2 Speicherbelegung/Memory-Mapping;35
6.1.2.3;1.2.3 Interner Aufbau des STM32F446;39
6.1.2.4;1.2.4 Bussysteme des STM32F446;43
6.2;Kapitel 2: CMSIS und MCAL erstellen, der Bootprozess, Anwendung der CMSIS;45
6.2.1;2.1 Warum sollte eine CMSIS-Bibliothek erstellt werden?;45
6.2.2;2.2 Die CMSIS-Bibliothek;47
6.2.2.1;2.2.1 Beschaffung der CMSIS-Dateien;47
6.2.2.2;2.2.2 Aufräumarbeiten;48
6.2.2.3;2.2.3 Erstellen der Bibliothek;50
6.2.2.4;2.2.4 Fertigstellen der CMSIS-Bibliothek;53
6.2.2.5;2.2.5 Einstellen von Suchpfaden;53
6.2.2.6;2.2.6 Abschlussarbeiten an der CMSIS-Bibliothek;55
6.2.2.7;2.2.7 Verwenden von CMSIS in eigenen Projekten;56
6.2.3;2.3 Der Bootvorgang;62
6.2.3.1;2.3.1 Der Reset-Handler;63
6.2.3.2;2.3.2 SystemInit;66
6.2.3.3;2.3.3 Grundlagen der Takterzeugung;66
6.2.3.4;2.3.4 Linkerscripts;67
6.2.4;2.4 MCAL / MCAL-STM;75
6.3;Kapitel 3: Embedded C vs. Standard C;79
6.3.1;3.1 Kommentare;80
6.3.2;3.2 Benennung von Funktionen, Variablen und Konstanten;80
6.3.3;3.3 Verwendung geschweifter Klammern;81
6.3.4;3.4 if()-Vergleiche mit Konstanten;82
6.3.5;3.5 Verwendung von Konstanten;83
6.3.6;3.6 Verwendung globaler Variablen;83
6.3.7;3.7 Datentypen;84
6.3.8;3.8 Datentypen in der STM-Dokumentation;86
6.4;Kapitel 4: RCC, SYSCFG und SCB;87
6.4.1;4.1 Reset and Clock Control (RCC);87
6.4.1.1;4.1.1 Reset: Verschiedene Reset-Arten;88
6.4.2;4.2 System Configuration Controller (SYSCFG);92
6.4.3;4.3 System Control Block (SCB);93
6.5;Kapitel 5: Einstellung von Taktfrequenzen;97
6.5.1;5.1 Einflüsse der Taktfrequenz;97
6.5.2;5.2 Taktsystem;104
6.5.2.1;5.2.1 Orientierung im »Clock tree«;104
7;Teil II: Kernkomponenten der STM32F4xx-Mikrocontroller;119
7.1;Kapitel 6: GPIO: General Purpose Input/Output;121
7.1.1;6.1 Features und Grenzdaten;122
7.1.2;6.2 GPIO-Register;123
7.1.3;6.3 Zwei einfache Beispiele;132
7.1.3.1;6.3.1 Rechtecksignal mit dem ODR-Register;133
7.1.3.2;6.3.2 MCAL: Neue Funktion(en);135
7.1.3.3;6.3.3 Rechtecksignal mit BSRR;135
7.2;Kapitel 7: Polling, Interrupts und Exceptions;139
7.2.1;7.1 Allgemeines zu Polling und Interrupts;140
7.2.1.1;7.1.1 Polling;140
7.2.1.2;7.1.2 Interrupts;141
7.2.1.3;7.1.3 Interrupts beherrschen;142
7.2.1.4;7.1.4 Maskierbare und nicht-maskierbare Interrupts;143
7.2.1.5;7.1.5 Globale Interrupts;144
7.2.1.6;7.1.6 Der Nested Vector Interrupt Controller NVIC;145
7.2.2;7.2 Externe Interrupts;150
7.2.2.1;7.2.1 External Interrupt/Event Controller (EXTI);151
7.2.2.2;7.2.2 Beispiel zu externen Interrupts;156
7.2.2.3;7.2.3 Erkennung mehrerer externer Interrupts;162
7.2.3;7.3 Exceptions;169
7.3;Kapitel 8: Alternative GPIO-Funktionen;171
7.3.1;8.1 Wiederholung;171
7.3.2;8.2 Aktivieren alternativer Funktionen;173
7.3.3;8.3 Auswahl alternativer Funktionen;173
7.4;Kapitel 9: System Tick Timer (SysTick);177
7.4.1;9.1 Verwendung des SysTick-Timers;179
7.4.2;9.2 Steuerung mehrerer Funktionen;184
7.4.3;9.3 Steuerung mehrerer Funktionen: Ein verbesserter Ansatz;190
7.4.4;9.4 Register des SysTick-Timers;202
7.5;Kapitel 10: Timer-Grundlagen und Basic Timer;205
7.5.1;10.1 Allgemeines zu Timern und Countern;208
7.5.2;10.2 Basic Timer TIM6 und TIM7;210
7.5.2.1;10.2.1 Beispiel mit Basic Timer TIM6;214
7.5.3;10.3 Prescaler (Vorteiler) der Busse;219
7.6;Kapitel 11: General-Purpose Timer (GP-Timer);223
7.6.1;11.1 GP-Timer, Teil 1: TIM9 bis TIM14;224
7.6.1.1;11.1.1 Register der GP-Timer TIM9 bis TIM14;225
7.6.1.2;11.1.2 Beispiel 1 zum Einsatz von TIM12;230
7.6.1.3;11.1.3 Beispiel 2 zum Einsatz von TIM12;234
7.6.2;11.2 GP-Timer, Teil 2: TIM2 bis TIM5;239
7.6.2.1;11.2.1 Einschub: Pulsweitenmodulation (PWM);241
7.6.2.2;11.2.2 Beispiel: Dimmen einer LED mittels PWM;246
7.7;Kapitel 12: Advanced-Control Timer;253
7.7.1;12.1 Neue Register der Advanced-Control Timer;254
7.7.2;12.2 Einschub: Schalten induktiver Lasten;258
7.7.3;12.3 Beispiel zur Totzeitgenerierung mit dem STM32F446;260
7.7.3.1;12.3.1 Das Projekt Kap11-ACTIM-01-Center-and-Edge-Align;260
7.8;Kapitel 13: Digital-Analog-Konverter;267
7.8.1;13.1 Technische Verfahren der D/A-Wandlung;267
7.8.1.1;13.1.1 Die Parallelwandlung;268
7.8.1.2;13.1.2 Das Zählverfahren;269
7.8.1.3;13.1.3 Das R-2R-Verfahren;269
7.8.2;13.2 DACs in der STM32F4xx-Familie;270
7.8.2.1;13.2.1 Datenhalteregister;271
7.8.2.2;13.2.2 Datenformate;272
7.8.3;13.3 Die Register des DAC;273
7.8.4;13.4 Ein einfaches Anwendungsbeispiel;275
7.8.5;13.5 Tipps für eigene Anwendungen;280
7.9;Kapitel 14: Analog-Digital-Wandlung;281
7.9.1;14.1 ADCs in der STM-Familie;282
7.9.2;14.2 Register in den STM-ADCs;286
7.9.3;14.3 Anwendungsbeispiel;291
8;Teil III: Serielle Schnittstellen;297
8.1;Kapitel 15: Serielle Kommunikation;299
8.1.1;15.1 Grundlegende Begriffe;300
8.1.1.1;15.1.1 Kommunikationsrichtungen;300
8.1.1.2;15.1.2 Aufbau der Daten;301
8.1.1.3;15.1.3 Datenpegel;303
8.1.1.4;15.1.4 Übertragungsgeschwindigkeit;304
8.1.1.5;15.1.5 Übertragungsprotokolle;304
8.1.1.6;15.1.6 Asynchrone vs. synchrone Datenübertragung;305
8.1.2;15.2 Ausführungsformen einfacher RS-232-Schnittstellen;306
8.2;Kapitel 16: UARTs und USARTs;307
8.2.1;16.1 Was sind UARTs und USARTs?;308
8.2.1.1;16.1.1 Die UART/USART-Register;309
8.2.1.2;16.1.2 Empfangen und Senden von Daten;314
8.3;Kapitel 17: Inter-Integrated Circuit I²C;323
8.3.1;17.1 Die ursprüngliche Idee hinter I²C;323
8.3.2;17.2 Prinzipieller Aufbau einer I²C-Schaltung;324
8.3.3;17.3 Betriebsarten/Protokoll von I²C;327
8.3.3.1;17.3.1 Vier Betriebsarten;327
8.3.3.2;17.3.2 Das I²C-Protokoll;329
8.3.4;17.4 I²C in der STM32F4xx-Familie;331
8.3.5;17.5 Ein Beispiel mit dem PCF8574;338
8.3.5.1;17.5.1 Der PCF8574;340
8.3.5.2;17.5.2 Das Programmlisting;341
8.3.6;17.6 Daten lesen von I²C-Komponenten;350
8.3.7;17.7 Anmerkungen zu den Beispielprojekten;354
8.4;Kapitel 18: Serial Peripheral Interface SPI;359
8.4.1;18.1 Datentransfer in SPI-Interfaces;362
8.4.1.1;18.1.1 CPHA = 1;362
8.4.1.2;18.1.2 CPHA = 0;363
8.4.1.3;18.1.3 Anwendung von SPI;364
8.4.2;18.2 SPI-Register der STM32F4xx-Familie;364
8.4.3;18.3 Ein einfaches Beispiel mit dem MAX7219;370
8.4.3.1;18.3.1 Kurzbeschreibung des MAX7219;380
8.4.4;18.4 Eine kleine Übung;381
9;Teil IV: Weitere Komponenten;383
9.1;Kapitel 19: Direct Memory Access (DMA);385
9.1.1;19.1 Funktionsweise;386
9.1.2;19.2 DMAC(s) in der STM32F4xx-Familie;387
9.1.3;19.3 Beispiel: Memory ? USART2 ? PC mit DMA;394
9.1.3.1;19.3.1 Erläuterung der Funktionsweise;399
9.1.3.2;19.3.2 »Probleme« von DMA;401
9.2;Kapitel 20: Watchdog;403
9.2.1;20.1 Independent Watchdog (IWDG);403
9.2.2;20.2 Window Watchdog (WWDG);405
9.2.2.1;20.2.1 Funktionsweise;406
9.2.3;20.3 Debuggen und Watchdogs;408
10;Anhang A: Internetadressen und Literaturnachweise;409
10.1;A.1 Literaturnachweise;409
10.2;A.2 Infos zur STM32F4xx-Familie;410
10.3;A.3 Programmierung in C;410
10.4;A.4 Tastaturkürzel von STM32CubeIDE;410
10.5;A.5 Internettutorials;410
10.6;A.6 Support;411
11;Anhang B: Dokumentation der MCAL;413
11.1;B.1 Grundlegender Aufbau der Dokumentation;413
11.2;B.2 Erläuterung einzelner Funktionen;414
12;Anhang C: Einführung in das Debuggen;417
12.1;C.1 Debugger einrichten;418
12.2;C.2 Variablen »beobachten«;422
12.3;C.3 Anzeige von Prozessorregistern;424
12.4;C.4 Anzeige von SRAM-Inhalten;425
12.5;C.5 Vorsicht bei Watchdogs!;425
12.6;C.6 Ein weiteres tolles Feature;427
13;Stichwortverzeichnis;429