This article aims to deliver concise yet complete guidance on reading encoders using STM32 Timer Encoder Mode. First, I will explain how encoders operate. Then, we will discuss how to configure the ti...
Imagine, you are recording a sensor and storing it using some variables in your code. At some point, BOOM, the microcontroller is disconnected from a power supply and you lose the recorded data. Once ...
Knowing the relation between IMU and quaternions is vital in designing unmanned aerial vehicles (UAVs) to compute the orientation in 3D space. The idea is to apply Inertial Measurement Unit (IMU) sens...
The timer is an essential peripheral in microcontrollers. It allows tracking time, generating digital signals, periodically executing some code, and many other things. At first glance, notions of cloc...
 UART, an acronym for Universal Synchronous/Asynchronous Receiver Transmitter, stands as one of the oldest communication protocols. Besides that, in contemporary applications, UART plays an important ...
While STM32 microcontrollers offer enough RAM for various embedded applications, there are scenarios—such as image processing—where additional memory is required. In these cases, having an extra memor...
In robotic and embedded programming applications, it is quite important to not only generate but also read PWM signals. A vivid example of it is working with RC Joysticks receivers which became widesp...
Welcome to an exploration of STM32 Timer Interrupts—a fundamental aspect of embedded programming. In the realm of microcontrollers, Timer Interrupts stand as a vital tool, enabling the execution of co...
Pulse-width-modulation (PWM) is found in wide electrical engineering applications, from generating sine signals to transmitting data. This article aims to introduce a PWM signal in general and show ho...
Reading analog signals is essential in many embedded programming applications. Therefore, modern microcontrollers always contain analog-to-digital converters(ADC), and STM32 MCUS is no exception. STM3...
This article aims to provide thorough guidance on implementing the STM32 analog watchdog using the STM32CubeIde. First, I will explain the general concept of an analog watchdog and show you how to con...
Serial Peripheral Interface (SPI) is a widely used synchronous communication protocol for connecting microcontrollers with peripheral devices such as sensors, displays, memory, and communication modul...
Digital-to-Analog Converters (DACs) are essential peripherals in embedded systems, enabling microcontrollers to generate analog signals from digital values. In STM32 MCUs, the STM32 DAC peripheral all...
Proportional-Integral-Derivative (PID) control is one of embedded systems' most widely used control algorithms, particularly for motor control applications. Whether maintaining a set speed, achieving ...
Building a self-balancing robot is an excellent starting point for anyone exploring robotics and embedded systems, as it introduces key concepts such as sensor integration, motor control, and real-tim...
When I first started working with STM32 microcontrollers, I had no idea how much I would learn along the way. From my first simple experiments to designing full-fledged control systems, each project h...
 If you are looking for an interesting and advanced project in the STM32 Programming, not just "LED Blink", developing the code for the STM32 Drone Flight Controller could definitely excite you. It in...
Considering the growing interest in the STM32 CAN Peripheral in embedded applications, this article aims to explain the main features of the protocol and provide comprehensive information on the topic...
After passing the tedious theoretical part of the CAN journey, we finally cover the practical aspects of the CAN Interface. In this part of the tutorial, we will configure the STM32 CAN Peripheral and...
This article explains how to communicate with a widely used Internal Measurement Unit (IMU) sensor MPU6050 using STM32 MCU. We will use STM32CubeMx along with STM32 HAL API to program the microcontrol...
In C programming, we utilize a standard printf function to print some info on the console. This function requires including the stdint.h file to your project and nothing else. However, when it comes t...