Analysis of Less Common Library Functions for STM32 GPIO

1. void GPIO_DeInit(GPIO_TypeDef* GPIOx); First, let’s take a look at this function. We can see that the parameter of this function is a GPIO group parameter (GPIOB, GPIOC, GPIOA, etc.),Now, let’s enter the definition of this function in the standard peripheral library. void GPIO_DeInit(GPIO_TypeDef* GPIOx){ /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); if (GPIOx == GPIOA) … Read more

Introduction to FreeRTOS on STM32

When working on STM32 or other microcontroller projects, you often hear others say: “This project uses FreeRTOS.” What exactly is FreeRTOS? What benefits does it bring us? This article will provide a brief introduction to FreeRTOS. 1. What is FreeRTOS? Let’s break down the name👇 Free → Free of charge RTOS → Real-Time Operating System … Read more

Integrating STM32 with LVGL v9 Touchscreen

In the previous article “Porting LVGL v9 to STM32”, we completed the porting of LVGL on STM32. In the article “STM32 Driver for XPT2046 Touchscreen”, we implemented the driver for the XPT2046 touchscreen chip.Next, we will combine LVGL with the touchscreen to enable interaction through buttons and other controls on the screen.1. Modify the Touch … Read more

Embedded Microcontroller – STM32 Microcontroller – AI

STM32 is categorized into three tiers based on its AI support capabilities, as follows: Tier One: High-Performance AI Specialized Series (with Hardware Accelerators) These series are equipped with dedicated hardware accelerators (NPU) designed for AI computations, offering efficiency and speed far superior to standard cores, making them the preferred choice for handling complex AI models. … Read more

Embedded Microcontroller – AI with STM32

Of course! STM32 AI is a very powerful and flexible technology combination, with the core idea of enabling resource-constrained embedded microcontrollers to efficiently run artificial intelligence algorithms, especially neural network models. In simple terms, STM32 AI brings AI from the cloud and powerful computing chips (like GPUs) down to the device itself, making devices smarter, … Read more

The Cornerstone of Embedded System Architecture

In embedded system development, as project complexity increases and cross-platform requirements grow, the bare-metal programming approach of “write whatever comes to mind” is becoming inadequate. Adopting a layered architecture is key to ensuring code maintainability, portability, and testability.Among these, the division and collaboration between the hardware abstraction layer and the driver layer is the core … Read more

Embedded AI Learning Path

Freshman Year: Introduction to Arduino (3-6 months) 1. Learning Content • Basic Electronics: Use of resistors/capacitors/sensors • Basics of C Language: Variables, loops, functions • Arduino IDE Development: GPIO control, PWM output • Communication Protocols: UART, I2C (e.g., driving OLED screens) 2. Recommended Resources • Textbook: “Arduino from Beginner to Master” • Video: Bilibili “Zhengdian … Read more

Smart Lock System Based on STM32: Hardware Selection

In the previous article HS, WeChat public account: Ordinary Inspiration Dock, Smart Lock System Based on STM32, System Interface Design We introduced the overall functions and interface design of the smart lock system. This section will analyze in detail the core hardware selection scheme used in the system. The hardware part is the foundation of … 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

A Brief Introduction to the Registration Mechanism in Embedded Software Development

Problem Description One of the most frustrating aspects of using timers is defining flags and hold times. Each time a definition is made, it leads to a proliferation of flags in the interrupt function, and time variables are scattered throughout the program. When attempting to port the code, one hesitates to delete anything. The program … Read more