Projekt 11

STM32- & Arduino-Embedded-Systeme

Hardwarenahe Embedded-Software rund um synchrone Sensordatenerfassung, latenzarme Ausgabe auf lokale Displays und einen zuverlässigen Kommunikationsstandard zwischen Mikrocontrollern.

Kategorie
Embedded & Robotik
Rolle
Embedded-Softwareentwickler
Jahr
2025 – 2026

verwendete technologien

  • C
  • C++
  • STM32
  • ARM Cortex-M
  • Arduino
  • I2C/SPI/UART

problem

Problem

Auf Hardwareebene mussten Sensordaten wie Temperatur, Beschleunigung und Abstand synchron erfasst, mit geringer Latenz auf lokale Displays geschrieben und ein zuverlässiger Kommunikationsstandard zwischen Mikrocontrollern etabliert werden.

lösung

Lösung

Mit C und C++ habe ich auf STM32 mit den HAL/LL-Bibliotheken sowie auf dem Arduino Uno register- und treiberseitig programmiert. Über I2C, SPI und UART habe ich Kommunikationstreiber für SSD1306-OLED-Displays und verschiedene Sensormodule entwickelt und die Leseschleife auf Interrupts und Timer aufgebaut.

ergebnis

Ergebnis

Entstanden sind stabile Hardware-Prototypen ohne Blockaden, interruptgesteuert und fähig zu Echtzeit-Datenerfassung und -Visualisierung.

wichtigste funktionen

  • 01Register- und treiberseitige Programmierung auf STM32 mit den HAL/LL-Bibliotheken.
  • 02Kommunikationstreiber für SSD1306-OLED-Displays und Sensormodule über I2C, SPI und UART.
  • 03Echtzeit-Leseachitektur, gesteuert über Interrupts und Timer, immun gegen Blockaden.
  • 04Speicher- und Codeoptimierung für geringen Stromverbrauch und Echtzeit-Reaktionszeiten.

warum diese entscheidungen

Warum interruptgesteuertes Lesen statt Polling?

Eine kontinuierliche Abfrageschleife beschäftigt die CPU des Mikrocontrollers ohne Nutzen, und jedes Signal, das zwischen zwei Abfragen fällt, geht verloren. Der Wechsel zu Hardware-Interrupts und timerbasiertem periodischem Lesen entlastete die CPU und erfasste Signale ohne Verlust.

Warum Code auf HAL/LL-Ebene?

Fertige Bibliotheken liefern schnelle Ergebnisse, verbergen aber, was die Hardware tatsächlich tut. Die Arbeit auf Registerebene machte Timing- und Energieverhalten direkt steuerbar und erlaubte es, Probleme durch Messung statt durch Vermutung zu lösen.

Denken Sie an ein ähnliches Projekt?