Voltage Characteristics of STM32F030 Input Ports

1. Introduction Previously, we tested the input voltage characteristics of the ports in the STC32C030 microcontroller. A signal source DG1062 was used to generate a peak 10V sine AC signal. It can be observed that the voltage at the microcontroller’s IO port is limited to around 9V. So what are the specific characteristics of the … Read more

Basics of STM32 IoT Kit Part 05 – External Interrupts

Click the blue text above: IoT Inn In the previous section, we learned about the independent key operation of the microcontroller. In fact, we used a polling method, which consumes MCU resources as it constantly checks for key presses. In this section, we will use interrupts to implement key operations. 01 Basic Knowledge 1Introduction to … Read more

Understanding SPI Communication in STM32

Electronics Association Maker Lab SPI stands for Serial Peripheral Interface. It is a high-speed, full-duplex, synchronous communication bus widely used in communication with ADCs, LCDs, and other devices connected to MCUs, characterized by its speed. SPI Protocol Like IIC and serial ports, SPI also has its communication protocol, which is generally learned in a layered … Read more

A Simple Analysis of STM32 Firmware

This article is a highlight from the Kanxue Forum. Author ID on Kanxue Forum: Shaobanjia After reading the STM32 firmware reverse engineering thread on the forum (https://bbs.pediy.com/thread-272811.htm), I found a help request in the comments about the STM32 chip program that uses the XTEA encryption algorithm, but I couldn’t understand the data sorting issue (https://bbs.pediy.com/thread-272872.htm). … Read more

Controlling Xiaomi Micro Motor with STM32 HAL Library

Previously, due to the robot dog project, I had been using the Xiaomi micro motor, but I struggled to find a detailed tutorial, encountering many pitfalls while learning to control the motor. Today, we will implement the control of the Xiaomi micro motor step by step using buttons. This article will analyze the Xiaomi motor … Read more

How to Solve the Absence of EEPROM in STM32?

In embedded systems, EEPROM (Electrically Erasable Programmable Read-Only Memory) is often used to store data that needs to be changed frequently and should not be lost due to power interruptions. However, since STM32 does not have built-in EEPROM, how can we solve this problem and meet storage requirements? 1. Use External EEPROM Chips When STM32 … Read more

Powerful ITM Debugging Tool for STM32

STM32 has a code tracing feature, known as ITM, which is a very powerful debugging function that can replace serial input/output functionality, requiring only one I/O line to implement. Of course, its benefits are not limited to this; when debugging embedded operating system code, you will find it quite convenient. However, the focus of this … Read more

How to Solve Runaway Phenomenon During STM32 Upgrade with IAP?

During the firmware upgrade process of the STM32 microcontroller, many engineers choose the IAP technology, which allows firmware updates to the microcontroller via the host computer while the application is running. However, occasionally, there may be a low probability of encountering a runaway phenomenon. How to solve it? 1. Check Power Supply Voltage Ensure that … Read more

Designing the Minimal System for STM32 Microcontroller

Foreword Most of us fall into a misconception while learning STM32 — we focus solely on the software code and neglect the hardware aspect. In simple terms, we only know how to use the development board, and when it comes to designing our own STM32 system, we are at a loss. This article aims to … Read more

20 Commonly Used STM32 MCU Library Functions

The development of STM32 microcontrollers relies heavily on their powerful library function support. These library functions provide developers with a unified interface, simplifying the operation of low-level hardware, improving development efficiency and the reliability of programs. Below we will share 20 commonly used library functions for STM32 microcontrollers. 1. GPIO Initialization Function void HAL_GPIO_Init(GPIO_TypeDef* GPIOx, … Read more