
This lecture describes how to install the ST-Link software in the Ubuntu operating system.
This video is a basic introduction to the STM32CubeMX configuration tool.
The video shows a quick and simple GNU ARM toolchain installation procedure.
This lecture provides a brief overview of the STM32F4Discovery board and the STM32F407VGT6 MCU.
The video shows the connection of an IR receiver VS1838 and LEDs to the STM32F4Discovery board.
This lecture provides a deep analysis of the NEC command recorded from a remote control.
This lecture is a brief section introduction. The section demonstrates how to use the STM32CubeMX tool and how to generate a project template, which we can use in our course.
This lecture explains how to configure the Reset and Clock Control Unit using the STM32CubeMX code initialization tool.
This lecture briefly explains how to configure the GPIO and external interrupts using the STM32CubeMX code initialization tool.
This lecture briefly explains how to make a basic configuration for Timer 3 using the STM32CubeMX code initialization tool.
This lecture shows how to enable interrupts globally and set their priorities in the STM32CubeMX.
A Makefile modification is important to automate the MCU flashing and erasing procedure.
This lecture provides an overview of the project folder structure and the NEC decoder high-level algorithm description.
This lecture describes the RCC unit initialization sequence and its important library functions.
This lecture demonstrates the GPIO initialization sequence for the LEDs and an IR receiver. The triggering of the external interrupt is covered as well. The corresponding peripherals drivers are explained to a certain extent.
This lecture demonstrates the complete timer 3 initialization sequence and the corresponding peripheral driver functions for the STM32 timers. There is an explanation of testing of timer's measurement accuracy.
The NEC decoder interrupt-driven functions are explained in detail in this lecture. This is the core part of the NEC decoding firmware.
This lecture describes the additional functions, which are used in the NEC decoder to provide better code portability.
This lecture demonstrates the testing of the NEC decoder on the STM32F4Discovery board. The commands from the remote control are shown by the eight orange LEDs. The four onboard LEDs can be toggled by the selected remote control buttons. This is a final lecture, which proves that everything works as expected. :)
This lecture contains links to external resources.
Welcome to my practical and in-depth embedded systems course, where you will learn how to build a fully functional NEC infrared protocol decoder using an STM32 microcontroller.
This course combines hardware and low-level programming to give you real, hands-on experience with STM32 microcontrollers. Instead of relying on high-level libraries, we focus on understanding how the hardware actually works — directly at the register level.
What You Will Learn
How the NEC infrared protocol works
How to configure STM32 peripherals at the register level
How to use GPIO for input and output control
How to configure and handle external interrupts
How to use timers in compare mode for precise timing measurement
How to work with the Reset and Clock Control (RCC) unit
How to configure and use the NVIC
How to read and understand peripheral registers and their individual bits
Practical Project
Throughout the course, you will build a complete NEC protocol decoder capable of receiving signals from an infrared remote control and using them to control the LEDs on the STM32F4Discovery board.
By the end of the course, you will not only understand the NEC protocol but also gain solid confidence working directly with STM32 hardware peripherals — an essential skill for professional embedded systems development.
Getting Started
The course begins with step-by-step instructions on installing:
The GNU ARM toolchain for code compilation
The ST-LINK programmer for flashing firmware
The necessary development environment
You will also receive a brief but practical overview of the STM32F4Discovery board to help you understand the hardware platform you’ll be working with.