How khaled-magdy-deepblue/stm32_course_deepblue works
This repository is a collection of STM32 course firmware drivers, not a standalone application: it provides peripheral-facing input and sensing, actuation and display, storage middleware, and small math/utility facilities. The typical user-to-result path is application code calling a configured driver, which reads a sensor or input or sends output to a peripheral. The tree and excerpts support those driver responsibilities, but do not reveal a central application or how the modules are composed. Unsampled modules are represented by their exact directory paths; their wiring is omitted where source evidence is unavailable.
Main entry points: FATFS_SD.c FATFS SD · JOYSTICK.c Joystick ADC · HCSR04.c HC-SR04 · DC_MOTOR.c DC motor
Components 21
Inputs and sensing
- Keypad
ECUAL/KEYPAD/KEYPAD.c - Buttons
ECUAL/BUTTONS/BUTTONS.c - Joystick ADC
ECUAL/JOYSTICK/JOYSTICK.c - HC-SR04
ECUAL/HCSR04/HCSR04.c - LM35 sensor
ECUAL/LM35/LM35.c
Actuation and display
- DC motor
ECUAL/DC_MOTOR/DC_MOTOR.c - Servo motor
ECUAL/SERVO/SERVO.c - Stepper motor
ECUAL/STEPPER/STEPPER.c - LEDs
ECUAL/LEDS/LEDS.c - Dot matrix
ECUAL/DOT_MATRIX/DOT_MATRIX.c - Seven segment
ECUAL/SEVEN_SEGMENTS/SEVEN_SEGMENTS.c - GPIO LCD
ECUAL/LCD16X2/LCD16X2.c - I2C LCD
ECUAL/I2C_LCD/I2C_LCD.c
Storage middleware
- FATFS SD
MIDWARE/FATFS_SD/FATFS_SD.c - Flash EEPROM
MIDWARE/FEE/FEE.c
Math and utilities
- Math functions
MATH/MATH.c - FIR filter
MATH/FIR/FIR.c - GPIO and delays
util/Util.h
Other components
- Application caller
- STM32 HAL peripherals
- SD card
Connections 25
- Application caller → Keypad: reads keys
- Application caller → Buttons: reads buttons
- Application caller → Joystick ADC: reads axes
- Application caller → HC-SR04: requests distance
- Application caller → LM35 sensor: reads temperature
- Application caller → DC motor: sets motor
- Application caller → Servo motor: sets position
- Application caller → Stepper motor: sets motion
- Application caller → LEDs: controls LEDs
- Application caller → Dot matrix: updates display
- Application caller → Seven segment: sets digits
- Application caller → GPIO LCD: writes display
- Application caller → I2C LCD: writes display
- Application caller → FATFS SD: requests storage
- Application caller → Flash EEPROM: requests persistence
- Application caller → Math functions: calls functions
- Application caller → FIR filter: filters samples
- Joystick ADC → STM32 HAL peripherals: configures and reads ADC
- HC-SR04 → STM32 HAL peripherals: drives GPIO and timer capture
- DC motor → STM32 HAL peripherals: drives GPIO and PWM
- Servo motor → STM32 HAL peripherals: drives PWM
- Stepper motor → STM32 HAL peripherals: drives GPIO and timer
- I2C LCD → STM32 HAL peripherals: transmits over I2C
- FATFS SD → STM32 HAL peripherals: transfers over SPI
- FATFS SD → SD card: reads and writes sectors