Integrating Touch Screen with STM32F407 and LVGL

So far, the project has integrated LVGL with STM32F407 and also supports touch screens using STM32F407 + SPI for resistive touch screens. Therefore, integrating the touch screen with LVGL is a natural progression. You can refer to the official documentation at https://docs.lvgl.io/master/details/main-modules/indev/overview.html#indev-creation. It is simpler to refer to an official example template, especially for touch … Read more

Understanding FreeRTOS Porting: Key Insights

In the previous article, “FreeRTOS Porting – Single-Core ARM CM7”, we briefly introduced the process of porting FreeRTOS based on the ARM CM7 core. The overall process is quite simple, summarized as follows:“Download the kernel source and integrated examples from the official website -> Copy the kernel source -> Copy the port files for the … Read more

A Quick Start Guide to FreeRTOS

FreeRTOS is a widely used real-time operating system kernel for embedded systems. 1. What is FreeRTOS? Essence: It is an open-source (MIT licensed), configurable real-time operating system (RTOS) kernel. Core Features: Characteristics: Small resource footprint: The kernel itself typically compiles to only 6KB – 12KB of ROM and a few hundred bytes of RAM (depending … Read more

Why Do MCUs Need an Operating System? Starting the RT-Thread Learning Series!

Why Do MCUs Need an Operating System? Starting the RT-Thread Learning Series! Introduction If you are a microcontroller developer, you may have this question: Isn’t bare-metal development sufficient? Why should we install an operating system on a small MCU? Today, we will discuss this topic and embark on the journey of learning RT-Thread! 1. Why … Read more

Porting STM32-FreeRTOS and Simulation in Proteus

Introduction to FreeRTOS FreeRTOS is an open-source real-time operating system (RTOS) designed for embedded systems. It provides the following core features: Task Management: Supports concurrent execution of multiple tasks, with the ability to set task priorities. Memory Management: Provides dynamic memory allocation mechanisms (such as heap_1, heap_2, heap_4, etc.). Inter-task Communication: Supports mechanisms such as … Read more

Complete Learning Path for Embedded Development: 7 Stages from Zero to Linux System Development

Complete Learning Path for Embedded Development: 7 Stages from Zero to Linux System Development

Complete Learning Path for Embedded Development: 7 Stages from Zero to Linux System Development Do you want to become a professional embedded engineer but don’t know where to start? Today, we will provide a detailed analysis of a complete learning path from zero to Linux system development, helping you achieve your dream of becoming an … Read more

The Role of the Idle Task in FreeRTOS

The Role of the Idle Task in FreeRTOS

The idle task is a core task automatically managed by the FreeRTOS kernel, designed to ensure the basic operation of the system when no user tasks are running. This article provides a comprehensive explanation from four dimensions: lifecycle, core functions, practical code, and execution flow, along with best practices. 01 — The Lifecycle of the … Read more

Using Semaphores in FreeRTOS for STM32F103 Serial Data Transmission

Using Semaphores in FreeRTOS for STM32F103 Serial Data Transmission

1. Development Software: CubeIDE.2. Hardware Involved: STM32F103C8T6 minimum system board, ST-LINK v2 (STM8 & STM32), USB TO TTL (CH340). As shown below (for reference only):Connection Circuit Diagram:(1) STM32F103C8T6 <—> ST-LINK v2SWCLK <—> SWCLK; SWD <—> SWDIO ;3V3 <—> 3.3V ; GND <—> GND.(2)STM32F103C8T6 <—> USB TO TTLA10 <—> TXD ; A9 <—> RXD;3V3 <—> 3V3 … Read more

Task Notification Communication Method and Kernel Implementation in FreeRTOS

Task Notification Communication Method and Kernel Implementation in FreeRTOS

Task notifications are a lightweight inter-task communication (IPC) and synchronization mechanism provided by FreeRTOS. Each task has a built-in “notification value” that can be sent directly to a specified task, avoiding the use of heavier objects such as queues, semaphores, and event groups. The characteristics include no involvement of object allocation, deallocation, and intermediate data … Read more

How to Design a Logging System for Embedded Software

How to Design a Logging System for Embedded Software

Scan to FollowLearn Embedded Together, learn and grow together In embedded system development, a logging system is a crucial debugging and diagnostic tool. A well-designed logging system can help developers quickly locate issues, analyze system behavior, and monitor operational status. This article will detail how to develop a fully functional embedded software logging system. Requirements … Read more