Welcome to the Embedded Systems STM32 Hardware Abstraction Layer (HAL) Driver Development course.
The STM32 Hardware Abstraction Layer (HAL) provides a simple, generic multi-instance set of APIs (application programming interfaces) to interact with the upper layers like the user application, libraries and stacks.
The HAL driver APIs are split into two categories: generic APIs, which provide common and generic functions for all the STM32 series and extension APIs, which include specific and customized functions for a given line or part number. The HAL drivers include a complete set of ready-to-use APIs that simplify the user application implementation. For example, the communication peripherals contain APIs to initialize and configure the peripheral, manage data transfers in polling mode, handle interrupts or DMA, and manage communication errors.
In summary, the HAL offers high-level and feature-oriented APIs with a high-portability level. These hide the MCU and peripheral complexity from the end-user.
With a programming based approach, this course is designed to give you a solid foundation in firmware and peripheral driver development for the STM32 family of microcontrollers. The goal of this course is to teach you how to navigate the microcontroller reference manual and datasheet to extract the right information to professionally build peripheral drivers and firmware using the STM32 HAL APIs
By the end of this course you will be able to develop drivers for peripherals like the ADC, UART,PWM, GPIO, TIMER,I2C, SPI, RTC, RCC, EXTI etc. You will also master the STM32 architecture and how to build professional embedded firmware for STM32 microcontrollers.
Please take a look at the full course curriculum.