STM32 GPIO Tutorial: Modes, Functions, and Pin Configuration Explained

I have worked with many microcontrollers, from the early 8051 and PIC devices to the more advanced STM32 family. Among all the peripherals, one that has always been essential is the General-Purpose Input/Output (GPIO). A GPIO (General-Purpose Input/Output) is a special pin on a microcontroller that you can control through software. Unlike fixed-function pins, which

STM32 GPIO Tutorial: Modes, Functions, and Pin Configuration Explained Read More »

Factory Design Pattern in C++

During software/firmware development, one of the most important principles to follow is loose coupling. It is keeping different parts of a system as independent as possible. This allows your codebase to evolve, scale, and adapt to new requirements with minimal friction. One effective way to achieve loose coupling is by abstracting the object creation process.

Factory Design Pattern in C++ Read More »

Singleton Design Pattern

The Singleton Design Pattern is a creational design pattern that ensures a class has only one instance and provides a global point of access to that instance. It is the most controversial Design Pattern because it is violating the “Single Responsibility Principle”. 🤔 Now you might be wondering: How does it violate the Single Responsibility

Singleton Design Pattern Read More »

Virtual Function in C++

In C++, virtual functions are a fundamental part of object-oriented programming that enable runtime polymorphism. This dynamic dispatch mechanism makes virtual functions essential for building flexible, extensible, and modular systems especially in large-scale or hardware-abstracted software architectures. In this article you will learn what is virtual function in C++ and when to use it.  I

Virtual Function in C++ Read More »