• Add bookmark
EmbeddedExpertIO
  • Home

SSD1331 Color OLED with STM32 Part 1: Introduction and Environment Setup

Posted 12 hours ago by Husamuldeen

This guide walks you through working with the SSD1336 SPI color OLED display using STM32 MCUs. In part one, we’ll cover the SSD1331 controller basics, environment setup, and hardware connections to get started. In this guide, we shall cover the...

READ MORE

STM32 UART Part 4: Receiving Unknown Length of Data

Posted 5 days ago by Husamuldeen

In this part of our UART guide series, we will explore how to receive data of unknown length using interrupts triggered on each incoming character.This approach allows the STM32 to handle variable-length messages efficiently, reacting in real...

READ MORE

Emulating I2C Sensors Part 4: Slave Send Data to Master

Posted 7 days ago by Husamuldeen

In this part of the guide, the emulated I²C sensor will act as a data source, sending predefined or dynamically generated values back to the master upon request. This simulates the behavior of real sensors, where the master first selects a...

READ MORE

STM32 UART Part 3: Receiving Data using Polling and Interrupt

Posted 12 days ago by Husamuldeen

In this part, we focus on receiving data using both polling and interrupt-driven methods. Polling continuously checks the UART status flags for incoming data, while interrupt mode allows the CPU to handle other tasks and only responds when data...

READ MORE

Porting U8G2 Graphics Library to STM32 Part3: SH1106 SPI OLED

Posted 13 days ago by Husamuldeen

The SH1106 is a popular monochrome OLED display driver, commonly used in small screens ranging from 0.96″ to 1.3″, offering high contrast and low power consumption. It communicates via SPI or I²C interfaces, making it suitable for...

READ MORE

STM32 Timers Applications: PWM Input Mode

Posted 18 days ago by Husamuldeen

PWM Input mode on STM32 timers is a powerful feature that allows the microcontroller to directly measure the characteristics of an incoming PWM signal, such as its frequency and duty cycle. By configuring the timer’s input capture channels...

READ MORE

Porting U8G2 Graphics Library to STM32 Part2: SSD1306 OLED Display

Posted 21 days ago by Husamuldeen

In this part, we will use the U8g2 library to interface the popular SSD1306 OLED display with STM32. This will demonstrate how to initialize the display and render text and graphics through U8g2. In this guide, we shall cover the following: 5...

READ MORE

[Revised] Getting Started with STM32F103: Timer in PWM Mode with DMA

Posted 26 days ago by Husamuldeen

In the previous guide of PWM (here), we saw how to configure the timer to operate in PWM mode and update the duty cycle using for loop. In this guide, we shall use DMA and set of predefined duty cycle to update two channels of PWM. In this guide...

READ MORE

Emulating I2C Sensors Part 3: Storing the Configuration Data

Posted 28 days ago by Husamuldeen

In this part of the guide, the emulated I2C sensor will handle incoming configuration data sent by the master device. This allows the STM32 to mimic a real sensor’s behavior by accepting register writes that define its operating mode and...

READ MORE

STM32 ADC Application Part 8: Oversampling

Posted August 7, 2025 by Husamuldeen

This guide focuses on implementing ADC oversampling on STM32 to improve resolution and reduce noise in analog signal acquisition. It explains the oversampling principle, hardware configuration, and how to leverage STM32’s built-in support...

READ MORE

Porting U8G2 Graphics Library to STM32 Part1: Introduction

Posted August 2, 2025 by Husamuldeen

U8G2 is a powerful, open-source graphics library ideal for driving monochrome OLEDs and LCDs with STM32 microcontrollers, offering extensive display support and efficient rendering. This first part of the guide covers the essential steps for...

READ MORE

STM32 Timers Applications: Servo Motor Control

Posted July 31, 2025 by Husamuldeen

Controlling a servo motor is a fundamental task in embedded systems, often used in robotics, automation, and mechatronics to achieve precise angular positioning. In this section, we will explore how to use an STM32 timer to generate the PWM...

READ MORE
123…11-2021-3031-35
Categories
  • Data Structures
  • Deep Learning
  • Embedded Systems
  • LCD
  • Peripheral Drivers
  • State Machine
  • State Machines
  • STM32
  • TM4C123
  • Uncategorized

Get Our #1 Embedded Systems Bestseller on Amazon!

✅ Master Embedded Systems – Decode datasheets & build peripheral drivers from scratch.

✅ Hands-On Firmware Development – Work with GPIO, UART, SPI, I2C, ADC, DMA, and more.

✅ No More Blind Copying – Understand every line of code for real expertise.

✅ Advance Your Career – Gain confidence & independence in firmware development.

Join the EmbeddedExpertIO School

EmbeddedExpertIO School
Modern Bare-Metal Embedded C++ Programming from Ground Up™

Modern Bare-Metal Embedded C++ Programming from Ground Up™

No Libraries used, Embedded C++, ADC,UART,TIMERS, GPIO,SPI,I2C, Template Programming etc.

$69.99

Embedded Systems Bare-Metal Ethernet Programming

Embedded Systems Bare-Metal Ethernet Programming

Build Embedded Ethernet Firmware : UDP, TCP, HTTP, SSI, CGI etc

$79.99
Mastering the CAN Bus from Ground Up™

Mastering the CAN Bus from Ground Up™

Navigating the Intricacies of the Controller Area Network(CAN)

$79.78
Multicore Firmware Development from Ground Up™

Multicore Firmware Development from Ground Up™

Comprehensive Guide to Embedded Multicore Programming

$67
4G LTE IoT: Bare-Metal to HTTP, MQTT, SMS

4G LTE IoT: Bare-Metal to HTTP, MQTT, SMS

Mastering IoT from Ground Up: Build, Innovate, and Monetize with 4G LTE

$50.04
Master Firmware Updates with In-Application Programming(IAP)

Master Firmware Updates with In-Application Programming(IAP)

Keys to Implemementing Firmware Updates : IAP Host Application, Advanced Bootloader

$50.25
Recent Comments
  • Husamuldeen on Solving missing ARM Compiler v5 in Keil Uvision
  • Husamuldeen on Getting Started with STM32F103: Timer in PWM Mode with DMA
  • nikk on Solving missing ARM Compiler v5 in Keil Uvision
  • Frank on Getting Started with STM32F103: Timer in PWM Mode with DMA
  • Husamuldeen on Getting Started with STM32F103: Timer in PWM Mode with DMA
Archives
Modern Embedded GUI with TouchGFX

Modern Embedded GUI with TouchGFX

Craft Next-Gen Embedded User Experiences with TouchGFX

$70.03
Advanced Audio Processing: Mastering I2S, Codecs, Audio Input, and Output

Advanced Audio Processing: Mastering I2S, Codecs, Audio Input, and Output

Develop Expert Skills in STM32-Based Audio Systems and Driver Integration

$99.78
Wireless Firmware Update: Mastering FOTA with STM32 and ESP8266

Wireless Firmware Update: Mastering FOTA with STM32 and ESP8266

Firmware Over-the-Air (FOTA) Update from Ground Up™

$129.78

 All Rights Reserved

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.Learn more here
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT