project 11

STM32- & Arduino-embeddedsystemen

Laagniveau embedded software rond synchrone sensordata-verzameling, uitvoer met lage latentie naar lokale displays en een betrouwbare communicatiestandaard tussen microcontrollers.

Categorie
Embedded & Robotica
Rol
Embedded softwareontwikkelaar
Jaar
2025 – 2026

gebruikte technologieën

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

probleem

Probleem

Op hardwareniveau moesten sensordata zoals temperatuur, versnelling en afstand synchroon worden verzameld, met lage latentie naar lokale displays worden geschreven, en moest er een betrouwbare communicatiestandaard tussen microcontrollers komen.

oplossing

Oplossing

Met C en C++ heb ik op STM32 met de HAL/LL-bibliotheken en op de Arduino Uno op register- en driverniveau geprogrammeerd. Via I2C, SPI en UART heb ik communicatiedrivers ontwikkeld voor SSD1306 OLED-displays en diverse sensormodules, en de leeslus opgebouwd op interrupts en timers.

resultaat

Resultaat

Het resultaat is een reeks stabiele hardwareprototypes zonder vastlopers, aangestuurd door interrupts en in staat tot realtime data-uitlezing en visualisatie.

belangrijkste functies

  • 01Register- en driverniveau programmeren op STM32 met de HAL/LL-bibliotheken.
  • 02Communicatiedrivers voor SSD1306 OLED-displays en sensormodules via I2C, SPI en UART.
  • 03Realtime leesarchitectuur aangestuurd door interrupts en timers, bestand tegen vastlopers.
  • 04Geheugen- en codeoptimalisatie voor laag verbruik en realtime responstijden.

waarom deze keuzes

Waarom interrupt-gestuurd lezen in plaats van polling?

Een continue pollinglus houdt de CPU van de microcontroller voor niets bezig, en elk signaal dat tussen twee pollings valt, gaat verloren. De overstap naar hardware-interrupts en timergebaseerd periodiek lezen ontlastte de CPU en ving signalen zonder verlies op.

Waarom code op HAL/LL-niveau?

Kant-en-klare bibliotheken leveren snel resultaat maar verbergen wat de hardware daadwerkelijk doet. Werken op registerniveau maakte timing- en verbruiksgedrag direct stuurbaar en liet problemen oplossen door meten in plaats van gissen.

Denk je aan een soortgelijk project?