Erste Schritte mit STM32L432: Übersicht, Spezifikationen, Anwendungen und Beispiel für die GPIO-Steuerung

STM32L432 Übersicht

Der STM32L432 ist ein von STMicroelectronics entwickelter Mikrocontroller mit extrem niedrigem Stromverbrauch. Er basiert auf dem ARM Cortex-M4-Kern und wurde für energieeffiziente eingebettete Systeme entwickelt. Durch die Kombination von leistungsstarken Rechenkapazitäten mit geringem Stromverbrauch eignet er sich ideal für IoT-Geräte und tragbare Anwendungen.

Spezifikationen

Die STM32L432-Serie bietet die folgenden technischen Hauptmerkmale:

  • Prozessorkern:

    • ARM Cortex-M4 32-Bit-RISC-Prozessor
    • Läuft mit bis zu 80 MHz mit Unterstützung für Single-Cycle-Multiplikation und Hardware-Division
    • Integrierte Gleitkommaeinheit (FPU) und Befehle für die digitale Signalverarbeitung (DSP)
  • Speicher:

    • 256 KB Flash (programmierbarer On-Chip-Speicher)
    • 64 KB SRAM
    • Unterstützung für externe Speichererweiterung
  • Funktionen für geringen Stromverbrauch:

    • Mehrere Energiesparmodi: Sleep, Stop und Standby
    • Dynamischer Stromverbrauch: nur 37 µA/MHz bei 80 MHz Betrieb
    • Strom im Stoppmodus: ca. 250 nA
    • Breiter Spannungsbereich: 1,8 V bis 3,6 V mit integrierter Energieverwaltung
  • Schnittstellen und Peripheriegeräte:

    • GPIO: Bis zu 51 universelle Ein-/Ausgangspins
    • Kommunikationsschnittstellen: USART/UART, I2C, SPI, CAN, USB 2.0 (Full Speed)
    • Timer: Allzweck-, Low-Power- und erweiterte Timer (PWM-Ausgang)
    • ADC/DAC: 12-Bit-ADC (16 Kanäle) und 12-Bit-DAC
    • Integrierter Oszillator und Echtzeituhr (RTC)
  • Gehäuseoptionen:

    • Erhältlich in verschiedenen Gehäusen (z. B. LQFP, UFBGA, WLCSP) für unterschiedliche Größenanforderungen.

Anwendung

Dank seines geringen Stromverbrauchs und seiner hohen Leistung wird der STM32L432 in folgenden Bereichen häufig eingesetzt:

  • IoT-Geräte:

    • Smart-Home-Systeme (z. B. intelligente Schlösser, Temperatur- und Feuchtigkeitssensoren)
    • Wearables (z. B. Fitness-Tracker, Gesundheitsüberwachungsgeräte)
  • Industrielle Steuerung:

    • Datenerfassungs- und Steuerungssysteme
    • Intelligente Zähler und Sensorknoten
  • Tragbare Geräte:

    • Batteriebetriebene Geräte (z. B. tragbare medizinische Instrumente)
    • Low-Power-Displays (z. B. E-Ink-Bildschirmsteuerungen)
  • Unterhaltungselektronik:

    • Spielzeug und Robotik
    • Intelligente Fernbedienungen
  • Sicherheits- und Verschlüsselungsanwendungen:

    • Hardware-AES-Verschlüsselungsunterstützung für sichere Kommunikation

Vorteile

  • Low-Power-Design: Ideal für batteriebetriebene Geräte, die eine lange Betriebsdauer erfordern.
  • Kostengünstig: Bietet hervorragende Leistung zu einem wettbewerbsfähigen Preis.
  • Robustes Entwicklungsumfeld: Unterstützt durch STM32CubeMX, STM32CubeIDE und eine umfassende Suite von Bibliotheken und Tools von ST.
  • Zuverlässigkeit: Design in Industriequalität mit hoher Temperaturtoleranz und großem Betriebsspannungsbereich.

GPIO-Steuerung mit dem NUCLEO-L432KC-Board

In diesem Beispiel stellen wir die Prinzipien der LED-Schaltung auf dem STM32L432KC-Board vor, erstellen ein neues Projekt mit STM32CubeMX und erlernen Programmiertechniken, um ein Blinken der LED zu erzielen.

NUCLEO L432KC board STM32L432KCU6
NUCLEO-L432KC board STM32L432KCU6

Erforderliche Materialien

  • NUCLEO-L432KC-Entwicklungsboard
  • USB-Kabel für Stromversorgung und Kommunikation
  • LED (falls externe LED erforderlich ist)
  • Widerstand (z. B. 220 Ω für externe LED)
  • STM32CubeMX-Software
  • Entwicklungsumgebung wie MDK5 (Keil) oder STM32CubeIDE

Schritt 1: Erstellen Sie ein neues Projekt mit STM32CubeMX.

Wählen Sie zunächst die MCU STM32L432KC aus und erstellen Sie ein neues STM32CubeMX-Projekt.

Create a new project from MCU STM32L432KC
Create a new project from MCU STM32L432KC

Als Nächstes konfigurieren wir den Oszillator für STM32L432KC. Aus dem Schaltplan geht hervor, dass der externe Low-Speed-Quarzoszillator mit PC14 und PC15 verbunden ist. Konfigurieren Sie diese GPIOs im Modus „Crystal/Ceramic Resonator” (Quarz-/Keramikresonator).

Configuration crystal ceramic resonator
Configuration crystal ceramic resonator

Erläuterung der Oszillatormodi:

BYPASS-Taktquelle: Der Chip umgeht die interne Taktgeberkomponente und verwendet direkt ein externes Taktsignal.

Quarz-/Keramikresonator: Verwendet einen externen passiven Quarz in Kombination mit der internen Taktgeberschaltung der MCU, bietet eine höhere Präzision, benötigt jedoch eine Startzeit.

Konfigurieren Sie den GPIO für die LED. Stellen Sie PB3 mit den folgenden Parametern auf den Modus „GPIO_Output“ ein:

  • Push-Pull-Ausgang
  • Standardmäßiger Low-Level-Ausgang (LED zunächst ausgeschaltet)
  • Keine Pull-up- oder Pull-down-Widerstände

Konfigurieren Sie die Uhr. Stellen Sie der Einfachheit halber die Systemuhr auf 80 MHz ein, damit STM32CubeMX die erforderlichen Einstellungen automatisch konfigurieren kann.

Clock configuration 80 MHz
Clock configuration 80 MHz

Legen Sie die Einstellungen für die Codegenerierung in der Projektoberfläche fest:

  • Benennen Sie das Projekt und wählen Sie das Entwicklungstool (z. B. MDK5).
  • Aktivieren Sie „Peripherie-Initialisierung als … generieren“, um separate .c Dateien für Peripheriegeräte (z. B. GPIO, I2C, SPI) zu erstellen.
STM32CubeMX project settings name location toolchain IDE
STM32CubeMX project settings (name, location, toolchain IDE)
Setting code generator on STM32CubeMX
Setting code generator on STM32CubeMX

Nachdem alle Projektoptionen festgelegt wurden, können wir das Projekt generieren. Wenn Sie STM32CubeMX zum ersten Mal verwenden, müssen Sie die folgenden Softwarepakete herunterladen:

Download stm32cube software package
Download stm32cube software package

Fahren Sie anschließend mit der Codegenerierung fort und öffnen Sie nach erfolgreicher Generierung den Projektordner.

Successfully generated stm32l432kc project code
Successfully generated stm32l432kc project code

Der Ordner enthält sowohl STM32CubeMX- als auch MDK5-Projektdateien, sodass bequeme Änderungen in STM32CubeMX vorgenommen werden können. Jetzt können wir das Projekt „NUCLEO-L432KC(LED_Blinking)” im Ordner MDK-ARM starten.

STM32CubeMX project folder
STM32CubeMX project folder

Schritt 2: Code zum Blinken der LED schreiben

Suchen Sie die erforderlichen Funktionen in den STM32-HAL-Dateien:

  • HAL_GPIO_TogglePin() und HAL_GPIO_WritePin() in stm32l4xx_hal_def.h.
  • HAL_Delay() in stm32l4xx_hal.h.

Implementieren Sie den folgenden Code, um die LED alle 2 Sekunden blinken zu lassen:

Add led blinking code to main.c file
Add led blinking code to main.c file
				
					/* USER CODE BEGIN WHILE */
while (1)
{
  // Method 1: Using HAL_GPIO_TogglePin()
  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);
  HAL_Delay(2000);

  // Method 2: Using HAL_GPIO_WritePin()
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); // Turn off for 2 seconds
  HAL_Delay(2000);
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);   // Turn on for 2 seconds
  HAL_Delay(2000);
}
/* USER CODE END WHILE */

				
			

Kompilieren Sie den Code und stellen Sie sicher, dass keine Fehler vorliegen.

Rebuild all target files for project NUCLEO L432KCLED Blinking
Rebuild all target files for project NUCLEO-L432KC(LED_Blinking)

Schritt 3: Flashing-Parameter konfigurieren

Das NUCLEO-L432KC-Board verfügt über einen integrierten STLINK/V2-1-Debugger und -Programmierer.

  • Konfigurieren Sie das Projekt so, dass ST-LINK zum Herunterladen verwendet wird.
  • Stellen Sie die Flash-Parameter wie in der STM32CubeMX-Schnittstelle gezeigt ein und laden Sie dann das Programm herunter.
Configure target options and download program for NUCLEO L432KC LED Blinking
Configure target options and download program for NUCLEO-L432KC (LED_Blinking)

Schritt 4: Programm flashen

Laden Sie das kompilierte Programm auf das NUCLEO-L432KC-Board und beobachten Sie, wie die LED blinkt.

Download code to flash memory
Download code to flash memory

Teilen auf:

Nach oben scrollen

Instant Quote