STM32 -  Ralf Jesse

STM32 (eBook)

Das umfassende Praxisbuch.ARM-Mikrocontroller programmieren für Embedded Systems

(Autor)

eBook Download: PDF
2022 | 2. Auflage
434 Seiten
MITP Verlags GmbH & Co. KG
978-3-7475-0453-6 (ISBN)
Systemvoraussetzungen
29,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Programmierung der wichtigsten Peripherie-Komponenten des STM32F4xx-Chips Digitale und analoge I/O-Ports (GPIOs), Timer und Counter, serielle Schnittstellen (USARTs/UARTs, SPI und I2C), ADCs und DACs, Direct Memory Access (DMA) Zahlreiche praktische Anwendungsbeispiele Dieses Buch bietet einen umfassenden Praxiseinstieg in die Softwareentwicklung für Embedded Systems mit der ARM-Mikrocontrollerfamilie STM32F4xx der Firma STMicroelectronics (STM). Für die Programmierung wird die Sprache C eingesetzt. Der Autor behandelt die wichtigsten Peripherie-Komponenten, dazu gehören digitale und analoge I/O-Ports (GPIOs), Timer und Counter, serielle Schnittstellen (USARTs/UARTs, SPI und I2C), ADCs und DACs, RTC (Echtzeit-Uhr) sowie Direct Memory Access (DMA). Anhand einfacher Beispiele zeigt der Autor den praktischen Einsatz dieser Komponenten. Hierzu zählen die Abfrage von Uhrzeit und Datum von einer externen RTC (über I2C) sowie deren Anzeige über SPI auf einfachen Displays. Im Verlauf des Buchs entsteht so eine Bibliothek, deren Funktionen für eigene Projekte auf einfache Weise eingesetzt werden können. Die Beispiele werden auf dem Evaluierungsboard NUCLEO-64 mit dem STM32F446 unter Einsatz der STM32CubeIDE-Entwicklungsumgebung entwickelt und getestet. Grundlegende Kenntnisse der Programmiersprache C werden vorausgesetzt. Alle Beispiele folgen dem MISRA-C-Standard, dessen Anwendung in der Automobilindustrie vorgeschrieben ist. Dieser wird in einem separaten Kapitel vorgestellt und sorgt für gut verständlichen und somit leicht zu pflegenden Code. Der Fokus liegt auf der »baremetal«-Programmierung, was den Umstieg auf Mikrocontroller anderer Hersteller erleichtert. Auf den Einsatz der HAL-Bibliothek wird ausdrücklich verzichtet. Aus dem Inhalt: Typische GPIO-Anwendungen (Input/Output/Alternative Funktionen) Timer: Systick/Basic/General Purpose/Advanced Control Timer PWM: Dimmen von LEDs mit Timern A/D- und D/A-Wandlung Serielle Kommunikation mit UARTs/USARTs/I2C/SPI Porterweiterung mit I2C (PCF8574)/Ansteuerung von LC-Displays 7-Segment-Anzeigen über SPI (MAX7219) Einsatz einer externen Echtzeituhr (RTC) DS3231 über I2C

Ralf Jesse ist Diplom-Ingenieur der Elektrotechnik mit mehr als 30 Jahren beruflicher Praxis im Einsatz von Mikroprozessoren und -controllern. Nach ersten Erfahrungen als Entwicklungsingenieur in einem Maschinenbau-Unternehmen folgten mehr als 20 Jahre als Software-Ingenieur in einem großen japanischen Konzern.

Cover 1
Titel 5
Impressum 6
Inhaltsverzeichnis 7
Einleitung 13
Worum es geht 14
Warum STM32F4? 15
Zielgruppe dieses Buches 16
Voraussetzungen 17
Aufbau des Buches 18
Einsatz von Bibliotheken? 23
Entwicklungsumgebungen 26
Hinweis zu den Prozessorregistern 26
Support 27
Anmerkungen des Autors 27
Teil I: Grundlagen 29
Kapitel 1: STM32F4xx-Mikrocontroller 31
1.1 Überblick über die STM32F4xx-Familie 31
1.2 Der STM32F446 33
1.2.1 Varianten des STM32F446 33
1.2.2 Speicherbelegung/Memory-Mapping 35
1.2.3 Interner Aufbau des STM32F446 39
1.2.4 Bussysteme des STM32F446 43
Kapitel 2: CMSIS und MCAL erstellen, der Bootprozess, Anwendung der CMSIS 45
2.1 Warum sollte eine CMSIS-Bibliothek erstellt werden? 45
2.2 Die CMSIS-Bibliothek 47
2.2.1 Beschaffung der CMSIS-Dateien 47
2.2.2 Aufräumarbeiten 48
2.2.3 Erstellen der Bibliothek 50
2.2.4 Fertigstellen der CMSIS-Bibliothek 53
2.2.5 Einstellen von Suchpfaden 53
2.2.6 Abschlussarbeiten an der CMSIS-Bibliothek 55
2.2.7 Verwenden von CMSIS in eigenen Projekten 56
2.3 Der Bootvorgang 62
2.3.1 Der Reset-Handler 63
2.3.2 SystemInit 66
2.3.3 Grundlagen der Takterzeugung 66
2.3.4 Linkerscripts 67
2.4 MCAL / MCAL-STM 75
Kapitel 3: Embedded C vs. Standard C 79
3.1 Kommentare 80
3.2 Benennung von Funktionen, Variablen und Konstanten 80
3.3 Verwendung geschweifter Klammern 81
3.4 if()-Vergleiche mit Konstanten 82
3.5 Verwendung von Konstanten 83
3.6 Verwendung globaler Variablen 83
3.7 Datentypen 84
3.8 Datentypen in der STM-Dokumentation 86
Kapitel 4: RCC, SYSCFG und SCB 87
4.1 Reset and Clock Control (RCC) 87
4.1.1 Reset: Verschiedene Reset-Arten 88
4.2 System Configuration Controller (SYSCFG) 92
4.3 System Control Block (SCB) 93
Kapitel 5: Einstellung von Taktfrequenzen 97
5.1 Einflüsse der Taktfrequenz 97
5.2 Taktsystem 104
5.2.1 Orientierung im »Clock tree« 104
Teil II: Kernkomponenten der STM32F4xx-Mikrocontroller 119
Kapitel 6: GPIO: General Purpose Input/Output 121
6.1 Features und Grenzdaten 122
6.2 GPIO-Register 123
6.3 Zwei einfache Beispiele 132
6.3.1 Rechtecksignal mit dem ODR-Register 133
6.3.2 MCAL: Neue Funktion(en) 135
6.3.3 Rechtecksignal mit BSRR 135
Kapitel 7: Polling, Interrupts und Exceptions 139
7.1 Allgemeines zu Polling und Interrupts 140
7.1.1 Polling 140
7.1.2 Interrupts 141
7.1.3 Interrupts beherrschen 142
7.1.4 Maskierbare und nicht-maskierbare Interrupts 143
7.1.5 Globale Interrupts 144
7.1.6 Der Nested Vector Interrupt Controller NVIC 145
7.2 Externe Interrupts 150
7.2.1 External Interrupt/Event Controller (EXTI) 151
7.2.2 Beispiel zu externen Interrupts 156
7.2.3 Erkennung mehrerer externer Interrupts 162
7.3 Exceptions 169
Kapitel 8: Alternative GPIO-Funktionen 171
8.1 Wiederholung 171
8.2 Aktivieren alternativer Funktionen 173
8.3 Auswahl alternativer Funktionen 173
Kapitel 9: System Tick Timer (SysTick) 177
9.1 Verwendung des SysTick-Timers 179
9.2 Steuerung mehrerer Funktionen 184
9.3 Steuerung mehrerer Funktionen: Ein verbesserter Ansatz 190
9.4 Register des SysTick-Timers 202
Kapitel 10: Timer-Grundlagen und Basic Timer 205
10.1 Allgemeines zu Timern und Countern 208
10.2 Basic Timer TIM6 und TIM7 210
10.2.1 Beispiel mit Basic Timer TIM6 214
10.3 Prescaler (Vorteiler) der Busse 219
Kapitel 11: General-Purpose Timer (GP-Timer) 223
11.1 GP-Timer, Teil 1: TIM9 bis TIM14 224
11.1.1 Register der GP-Timer TIM9 bis TIM14 225
11.1.2 Beispiel 1 zum Einsatz von TIM12 230
11.1.3 Beispiel 2 zum Einsatz von TIM12 234
11.2 GP-Timer, Teil 2: TIM2 bis TIM5 239
11.2.1 Einschub: Pulsweitenmodulation (PWM) 241
11.2.2 Beispiel: Dimmen einer LED mittels PWM 246
Kapitel 12: Advanced-Control Timer 253
12.1 Neue Register der Advanced-Control Timer 254
12.2 Einschub: Schalten induktiver Lasten 258
12.3 Beispiel zur Totzeitgenerierung mit dem STM32F446 260
12.3.1 Das Projekt Kap11-ACTIM-01-Center-and-Edge-Align 260
Kapitel 13: Digital-Analog-Konverter 267
13.1 Technische Verfahren der D/A-Wandlung 267
13.1.1 Die Parallelwandlung 268
13.1.2 Das Zählverfahren 269
13.1.3 Das R-2R-Verfahren 269
13.2 DACs in der STM32F4xx-Familie 270
13.2.1 Datenhalteregister 271
13.2.2 Datenformate 272
13.3 Die Register des DAC 273
13.4 Ein einfaches Anwendungsbeispiel 275
13.5 Tipps für eigene Anwendungen 280
Kapitel 14: Analog-Digital-Wandlung 281
14.1 ADCs in der STM-Familie 282
14.2 Register in den STM-ADCs 286
14.3 Anwendungsbeispiel 291
Teil III: Serielle Schnittstellen 297
Kapitel 15: Serielle Kommunikation 299
15.1 Grundlegende Begriffe 300
15.1.1 Kommunikationsrichtungen 300
15.1.2 Aufbau der Daten 301
15.1.3 Datenpegel 303
15.1.4 Übertragungsgeschwindigkeit 304
15.1.5 Übertragungsprotokolle 304
15.1.6 Asynchrone vs. synchrone Datenübertragung 305
15.2 Ausführungsformen einfacher RS-232-Schnittstellen 306
Kapitel 16: UARTs und USARTs 307
16.1 Was sind UARTs und USARTs? 308
16.1.1 Die UART/USART-Register 309
16.1.2 Empfangen und Senden von Daten 314
Kapitel 17: Inter-Integrated Circuit I²C 323
17.1 Die ursprüngliche Idee hinter I²C 323
17.2 Prinzipieller Aufbau einer I²C-Schaltung 324
17.3 Betriebsarten/Protokoll von I²C 327
17.3.1 Vier Betriebsarten 327
17.3.2 Das I²C-Protokoll 329
17.4 I²C in der STM32F4xx-Familie 331
17.5 Ein Beispiel mit dem PCF8574 338
17.5.1 Der PCF8574 340
17.5.2 Das Programmlisting 341
17.6 Daten lesen von I²C-Komponenten 350
17.7 Anmerkungen zu den Beispielprojekten 354
Kapitel 18: Serial Peripheral Interface SPI 359
18.1 Datentransfer in SPI-Interfaces 362
18.1.1 CPHA = 1 362
18.1.2 CPHA = 0 363
18.1.3 Anwendung von SPI 364
18.2 SPI-Register der STM32F4xx-Familie 364
18.3 Ein einfaches Beispiel mit dem MAX7219 370
18.3.1 Kurzbeschreibung des MAX7219 380
18.4 Eine kleine Übung 381
Teil IV: Weitere Komponenten 383
Kapitel 19: Direct Memory Access (DMA) 385
19.1 Funktionsweise 386
19.2 DMAC(s) in der STM32F4xx-Familie 387
19.3 Beispiel: Memory ? USART2 ? PC mit DMA 394
19.3.1 Erläuterung der Funktionsweise 399
19.3.2 »Probleme« von DMA 401
Kapitel 20: Watchdog 403
20.1 Independent Watchdog (IWDG) 403
20.2 Window Watchdog (WWDG) 405
20.2.1 Funktionsweise 406
20.3 Debuggen und Watchdogs 408
Anhang A: Internetadressen und Literaturnachweise 409
A.1 Literaturnachweise 409
A.2 Infos zur STM32F4xx-Familie 410
A.3 Programmierung in C 410
A.4 Tastaturkürzel von STM32CubeIDE 410
A.5 Internettutorials 410
A.6 Support 411
Anhang B: Dokumentation der MCAL 413
B.1 Grundlegender Aufbau der Dokumentation 413
B.2 Erläuterung einzelner Funktionen 414
Anhang C: Einführung in das Debuggen 417
C.1 Debugger einrichten 418
C.2 Variablen »beobachten« 422
C.3 Anzeige von Prozessorregistern 424
C.4 Anzeige von SRAM-Inhalten 425
C.5 Vorsicht bei Watchdogs! 425
C.6 Ein weiteres tolles Feature 427
Stichwortverzeichnis 429

Erscheint lt. Verlag 29.4.2022
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik
ISBN-10 3-7475-0453-1 / 3747504531
ISBN-13 978-3-7475-0453-6 / 9783747504536
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 7,8 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Konzepte, Methoden, Lösungen und Arbeitshilfen für die Praxis

von Ernst Tiemeyer

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
69,99
Konzepte, Methoden, Lösungen und Arbeitshilfen für die Praxis

von Ernst Tiemeyer

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
69,99
Der Weg zur professionellen Vektorgrafik

von Uwe Schöler

eBook Download (2024)
Carl Hanser Verlag GmbH & Co. KG
29,99