STM32 (HAL)
Work with STM32 using the HAL (Hardware Abstraction Layer) library. From CubeMX-generated init code to GPIO, timers, UART, ADC, and PWM — read real code, diagnose compiler errors, and review AI-proposed changes.
Projects
Control GPIO with HAL
~90 minSubscription neededStart by turning an LED on and off with the STM32 HAL library. Read real code built from HAL_GPIO_WritePin/HAL_Delay, understand what CubeMX-generated init code means, and practice reading compiler errors, AI review, and prompt writing.
Precise periodic work with a timer interrupt
~100 minSubscription neededBuild precise periodic work without delay() using the TIM peripheral and HAL_TIM_PeriodElapsedCallback. Trace exactly when and how the interrupt callback fires, and diagnose common timer-setup mistakes at compile time and runtime.
Exchange data with a PC over UART
~110 minSubscription neededExchange data with a PC (serial monitor) in real time using HAL_UART_Transmit/Receive. Compare blocking vs. non-blocking (interrupt, DMA) approaches in real code, and trace communication bugs via telemetry logs.
Read analog sensor values with ADC
~100 minSubscription neededConvert analog inputs like a potentiometer or temperature sensor into real voltage values with HAL_ADC_Start/GetValue. Work with sampling rate and noise issues, and review AI-proposed filtering code.
Control motor speed with PWM
~120 minSubscription neededControl DC motor/servo speed with HAL_TIM_PWM_Start and duty cycle adjustment. Combine GPIO, timers, and ADC learned so far into a small capstone: controlling motor speed with a potentiometer.