Hinweise zu Fehlern und anderen Problemen

24.05.2023:

In Abschnitt 8.3 (zweite Auflage) bzw. Abschnitt 7.3 (erste Auflage) ist mir ein Fehler unterlaufen! Ich habe dort unter der Überschrift "Auswahl alternativer Funktionen" geschrieben, dass mit den Registern GPIO_AFRL bzw. GPIO_AFRH die alternativen Funktionen AF0 bis AF7 bzw. AF8 bis AF15 konfiguriert werden. Das ist so nicht korrekt!

Korrekt ist hingegen:

Mit dem Register GPIO_AFRL wird den Pins 0 bis 7 eines GPIO-Ports eine der alternativen Funktionen zugewiesen. Entsprechend verwendet man GPIO_AFRH für die Pins 8 bis 15 des jeweiligen GPIO-Ports.

23.04.2021:

Ein aufmerksamer Leser, der sich auch den Sourcecode der MCAL genauer angeschaut hat, hat mich auf Tippfehler in  den Zeilen 287 und 288 in der Datei mcalI2C.c hingewiesen: Dort steht bei der Konfiguration des Register TRISE sowie beim Aktivieren des I2C-Controllers I2C1-><Register>.

Korrekt muss es heißen:

i2c->TRISE = 0x0011;

i2c->CR1 |= I2C_CR1_PE;

Der Fehler ist bereits korrigiert, und die neue Version der MCAL-STM-Bibliothek steht bereits auf https://gitlab.com/rjesse/mcal-stm zum Download bereit.

21.04.2021:

  1. Unter dem Link 02 - Serielle Datenübertragung mit USART2 finden Sie die verbesserte (und fehlerbereinigte) Version des UART-/USART-Beispielprojekts aus Kapitel 15 des Buches.
  2. Unter dem Link 03 - DAC-Problem finden Sie zusätzlich die Beschreibung, warum das Ausgangssignal an Kanal 2 des Digital-Analog-Konverters nicht den Erwartungen entspricht. Kurz: Es ist kein Softwarefehler, sondern basiert auf der Doppelbelegung von GPIOA/Pin5. Die hier angeschlossene User-LED belastet den Pin im Analog-Modus und ist daher die Ursache für das inkorrekte Ausgangssignal.

20.04.2021:

In Listing 4.1 auf Seite 80 ist die Unterschrift zum Listing 4.1 falsch. Korrekt ist Abfrage des Registers RCC_CR.