STM32 Embedded Tutorial Series by Shanguigu

Last night, I worked overtime and posted a message on my friend circle:

“Success can only be achieved through hard work,

there’s no glory that comes from waiting!”

I added a photo of a clear night sky,

and included a little fist emoji,

just in case my boss wouldn’t see it, I even tagged him.

Have you ever posted something visible to only one person?

Last time my boss assigned me a big task,

I was exhausted and posted at dawn:

“Work is so hard, I don’t want to live anymore.”

The next day, my boss came to ask me about my progress.

If I don’t post, I’m suffering,

if I post, it means I can’t take it anymore, just venting a bit.

Posts during holidays are real posts,

while posts during work are like labor reform diaries.

Teacher Wu shook his head after seeing my post:

“Life is already so bitter,

don’t sell bitter herbs in your friend circle.”

In this vast sea of people, we met,

but it really is my retribution.”

Then, he taught me a trick to retaliate against society:

Change my nickname to “little wife” and post randomly.

Those on WeChat without a name tag,

if they happen to encounter their wife checking up…刺激!

Isn’t it said that Teacher Wu can enter Tsinghua University?

Are you being both Zen and despairing in your friend circle,

yet in your favorites, you are striving upward,

“waiting for that day when you finally have time?”

Come on, Teacher Wu will help you break through the void:

Shanguigu’s Embedded Tutorial Series on STM32

Direct link to Bilibili

STM32 Embedded Tutorial Series by Shanguigu

https://www.bilibili.com/video/BV1KM4m1U7f1

In the era of the Internet of Everything, embedded devices are playing an increasingly important role, and embedded development has gained more attention. In the field of embedded development, the STM32 series MCUs are favored for their high cost-performance ratio, rich peripherals, and user-friendly tools, widely used in IoT, industrial control, consumer electronics, medical devices, monitoring, and other fields.

Shanguigu has meticulously crafted the STM32 tutorial, providing detailed explanations of the principles and applications of STM32. The tutorial is designed to be used in conjunction with the STM32 development board developed by Shanguigu (available for purchase on Taobao), covering a wealth of application cases and classroom exercises, and providing detailed introductions to both the register and HAL library development methods.

The tutorial is divided into two main parts: the basic section and the advanced section. The basic section introduces fundamental concepts and principles, mastering commonly used development tools, and getting started with STM32 development design. The content includes: Introduction to STM32, Introduction to the development board, Quick start cases, GPIO, overall structure and clock system, interrupt system, USART serial communication, and I2C communication; the advanced section provides detailed introductions to more peripherals of STM32, involving deeper principles and richer application scenarios, including: Timer, DMA, ADC, SPI communication, memory registers, FSMC, and LCD display.

Studying the tutorial requires a foundation in digital electronics, analog electronics, and basic computer principles, suitable for beginners wanting to learn microcontroller knowledge, as well as embedded developers with microcontroller development experience who want to master STM32 development.

Tutorial Overview

Get the complete tutorial for free, send to the WeChat public account chat window:STM32For Shanguigu video download navigation and learning routes, please visit:

http://www.atguigu.com/download.shtml

Follow Shanguigu’s official account on Bilibili,

be the first to see the latest video tutorials!

STM32 Embedded Tutorial Series by Shanguigu

Link: https://space.bilibili.com/302417610

Tutorial Directory

001. Introduction to STM32 Tutorial

002. Overview – Introduction to ARM Core

003. Overview – Introduction to STM32

004. Overview – STM32 Application Scenarios

005. Overview – STM32 Naming Convention

006. Overview – STM32 Development Methods

007. Overview – Choosing STM32 Development Tools

008. Overview – Downloading and Installing Keil MDK

009. Development Board – Physical Diagram and Schematic

010. Development Board – STM32 Minimum System

011. Development Board – Quick Verification of STM32 Development Board

012. Lighting Case – Project Creation

013. Lighting Case – Compilation Configuration

014. Lighting Case – Register Code Implementation

015. Lighting Case – Review and Extended Practice – Lighting Three Lights

016. Lighting Case – Optimization (1) – Using Macro-Defined Register Names

017. Lighting Case – Optimization (2) – Using Bitwise Operations

018. Lighting Case – Optimization (3) – Using Macro-Defined Corresponding Bits

019. GPIO – Overview

020. GPIO – Operating Modes – Push-Pull Output and Open-Drain Output

021. GPIO – Operating Modes – Problem Solving – Data Transfer Direction

022. GPIO – Operating Modes – Multiplex Output

023. GPIO – Operating Modes – Input Mode

024. GPIO – Registers

025. GPIO – Keil + VSCode Optimization Development Experience

026. GPIO – Chasing Lights Case – Basic Code Implementation

027. GPIO – Chasing Lights Case – Code Improvement Implementation

028. GPIO – Classroom Exercise – Chasing Lights Back and Forth

029. STM32 System Architecture

030. STM32 Clock System

031. Summary of STM32 Clock Uses

032. HAL Library – Introduction

033. HAL Library – STM32CubeMX Installation

034. HAL Library – Chasing Lights Case – HAL Library Project Creation

035. HAL Library – Chasing Lights Case – HAL Library Code Implementation

036. HAL Library – Source Code Analysis of System Clock Configuration

037. Common Software Issues

038. Classroom Exercise – Sequentially Turning on Lights

039. Interrupt System – Basic Concepts

040. Interrupt System – Function of Interrupts

041. Interrupt System – STM32 Interrupts

042. Interrupt System – Interrupt System Architecture

043. Interrupt System – NVIC

044. Interrupt System – Basic Principles and Configuration of Interrupt Priority

045. Interrupt System – EXTI Principles and Registers

046. Interrupt System – Button Interrupt Case – Requirement Analysis and Circuit Principles

047. Interrupt System – Review

048. Interrupt System – Button Interrupt Case – Register Introduction

049. Interrupt System – Button Interrupt Case – Register Mode Implementation

050. Interrupt System – Button Interrupt Case – HAL Library Implementation

051. Interrupt System – Classroom Exercise – Button Light Switch

052. Interrupt System – Classroom Exercise – Button Chasing Light Switch

053. Interrupt System – Classroom Exercise – Button Manual Chasing Light

054. USART – Serial and Parallel Communication

055. USART – Half-Duplex and Full-Duplex

056. USART – Synchronous and Asynchronous

057. USART – Serial Communication Protocol

058. USART – Basic Introduction to USART Peripheral

059. USART – Functional Block Diagram Principle Introduction

060. USART – Setting Baud Rate

061. USART – Serial Communication Case – Circuit Principles and Register Introduction

062. USART – Serial Communication Case – Polling Mode Register Implementation – Initialization

063. USART – Serial Communication Case – Polling Mode Register Implementation – Sending and Receiving a Single Character

064. USART – Serial Communication Case – Polling Mode Register Implementation – Sending a String

065. USART – Serial Communication Case – Polling Mode Register Implementation – Receiving a String

066. USART – Serial Data Sending Case – Register Polling Mode – Code Improvement

067. USART – Problem Solving – Setting and Clearing Status Bits

068. USART – Serial Data Sending Case – Register Interrupt Mode

069. USART – Problem Solving – Judging End of String Flag

070. USART – Serial Data Sending Case – HAL Library Polling Mode – Sending and Receiving Fixed-Length Data

071. USART – Serial Data Sending Case – HAL Library Polling Mode – Sending and Receiving Variable-Length Data

072. USART – Serial Data Sending Case – HAL Library Interrupt Mode

073. Using Keil for Breakpoint Debugging

074. USART – Using Serial Port for printf Redirection – Register Implementation

075. USART – Using Serial Port for printf Redirection – HAL Library Implementation

076. Review of Basic Knowledge

077. I2C – Basic Principles and Protocol

078. I2C – Software Simulated I2C Case – Requirement Description and Hardware Circuit Design

079. I2C – Software Simulated I2C Case – M24C02 Address Introduction

080. I2C – Software Simulated I2C Case – Timing Diagram Arrangement

081. I2C – Software Simulated I2C Case – Project Creation and Basic Macro Definitions

082. I2C – Problem Solving – EEPROM Read and Write Operation Timing

083. I2C – Software Simulated I2C Case – Basic Timing Definitions

084. I2C – Software Simulated I2C Case – I2C Master Sending a Byte

085. I2C – Software Simulated I2C Case – I2C Master Reading a Byte

086. I2C – Software Simulated I2C Case – EEPROM Reading and Writing a Byte

087. I2C – Software Simulated I2C Case – EEPROM Continuous Reading and Writing Multiple Bytes

088. I2C – Software Simulated I2C Case – Main Function Testing

089. I2C – Review and Summary of I2C Principles

090. I2C – I2C Peripheral Principle Block Diagram in STM32

091. I2C – I2C Peripheral Registers (1) – Basic Configuration

092. I2C – I2C Peripheral Registers (2) – I2C Protocol Control

093. I2C – Hardware Implementation of I2C Case – Project Creation and I2C Initialization

094. I2C – Hardware Implementation of I2C Case – I2C Protocol Implementation (1) – Basic Operations

095. I2C – Hardware Implementation of I2C Case – I2C Protocol Implementation (2) – Sending and Receiving Address and Data

096. I2C – Hardware Implementation of I2C Case – EEPROM Interface Implementation and Testing

097. I2C – Hardware Implementation of I2C Case – HAL Mode Implementation

098. Comprehensive Case – Fancy Chasing Lights – Requirement Analysis and Implementation Ideas

099. Comprehensive Case – Fancy Chasing Lights – Serial Issuing Plan and Saving

100. Comprehensive Case – Fancy Chasing Lights – Analysis and Display of Chasing Lights Plan

101. Timer – Overall Introduction to Timers in STM32

102. Timer – System Tick Timer

103. Timer – System Tick Timer – Register Introduction

104. Timer – System Tick Timer Case – Register Implementation

105. Timer – System Tick Timer Case – HAL Library Implementation

106. Timer – System Tick Timer – Delay Function Utility Class

107. Timer – Basic Timer – Basic Composition and Principles

108. Timer – Basic Timer Case – Register Introduction

109. Timer – Basic Timer Case – Register Implementation

110. Timer – Basic Timer Case – HAL Library Implementation

111. Timer – Classroom Exercise – Timer Control for Blinking Two Lights

112. Timer – General Timer – Basic Introduction and Clock Source Selection

113. Timer – General Timer – Counting Mode

114. Timer – General Timer – PWM Principle

115. Timer – General Timer – Output Comparison Principle and Working Mode

116. Timer – Output PWM Case – Register Introduction

117. Timer – Output PWM Case – Register Implementation

118. Timer – Output PWM Case – HAL Library Implementation

119. Timer – Classroom Exercise – Alternating Breathing Light

120. Timer – Classroom Exercise – Button Adjusts LCD Backlight Brightness

121. Timer – General Timer – Input Capture Function

122. Timer – Measuring Period Case – Circuit Principles and Register Introduction

123. Timer – Measuring Period Case – Register Mode – Timer Initialization

124. Timer – Measuring Period Case – Register Mode – Detecting Period and Frequency

125. Timer – Measuring Period Case – Register Mode – Code Optimization

126. Timer – Measuring Period Case – HAL Library Mode

127. Timer – General Timer – Trigger Output and Slave Mode

128. Timer – General Timer – PWM Input Mode

129. Timer – Classroom Exercise – Measuring PWM Square Wave of Different Frequencies

130. Timer – Review – Slave Mode and PWM Input Mode

131. Timer – Measuring Duty Cycle Case – Register Introduction

132. Timer – Measuring Duty Cycle Case – Register Mode Implementation

133. Timer – Measuring Duty Cycle Case – HAL Library Mode Implementation

134. Timer – Advanced Timer – Functional Block Diagram and Principle Introduction

135. Timer – Advanced Timer Case – Register Introduction

136. Timer – Advanced Timer Case – Register Mode Implementation

137. Timer – Advanced Timer Case – HAL Library Mode Implementation

138. Timer – Review – Timer Summary

139. DMA – Basic Principles and Functional Block Diagram

140. DMA – Register Introduction

141. DMA Case 1 – ROM to RAM – Register Implementation

142. DMA Case 1 – ROM to RAM – HAL Library Implementation

143. DMA Case 2 – RAM to Serial Port – Register Implementation

144. DMA Case 2 – RAM to Serial Port – HAL Library Implementation

145. DMA – Review

146. ADC – Basic Principles and Basic Parameters

147. ADC – Basic Introduction to ADC Module in STM32

148. ADC – Successive Approximation ADC Working Principle

149. ADC – Working Principle of ADC Peripheral

150. ADC – Register Introduction

151. ADC – Single Channel Conversion Case – Register Mode

152. ADC – Single Channel Conversion Case – HAL Library Mode

153. ADC – ADC Block Diagram and Register Review

154. ADC – Multi-Channel Conversion Case – Register Mode

155. ADC – Multi-Channel Conversion Case – HAL Library Mode

156. SPI – Introduction to SPI Communication

157. SPI – W25Q32 Chip Introduction and Read/Write Operations

158. SPI – Read/Write Flash Case – Software Simulation Implementation (1) – SPI Communication Protocol

159. SPI – Read/Write Flash Case – Software Simulation Implementation (2) – Flash Interface Declaration and Reading ID Test

160. SPI – Read/Write Flash Case – Software Simulation Implementation (3) – Read/Write Flash

161. SPI – Read/Write Flash Case – Code Address Issue Resolution

162. SPI – SPI Peripheral in STM32

163. SPI – SPI Module Register Introduction

164. SPI – Read/Write Flash Case – Hardware Implementation – Register Mode

165. SPI – Read/Write Flash Case – Hardware Implementation – HAL Library Mode

166. Memory and Registers – Basic Introduction and Classification of Memory

167. Memory and Registers – Introduction to Different Types of Memory

168. Memory and Registers – Memory Mapping in STM32

169. Memory and Registers – Essence and Address Mapping of Registers

170. Classroom Exercise – Writing a Large Number of Characters to Flash

171. FSMC – Basic Principles and Composition

172. FSMC – External Device Address Mapping

173. FSMC – Control Read and Write Timing of External Memory

174. FSMC – SRAM Chip IS62WV51216

175. FSMC – Extended SRAM Case – Hardware Circuit and Register Introduction

176. FSMC – Extended SRAM Case – Register Implementation

177. FSMC – Review Summary and Extension

178. FSMC – Extended SRAM Case – HAL Library Implementation

179. LCD – Principles and Interface Types

180. LCD – LCD Controller and System Composition

181. LCD – FSMC Control LCD Display Case – Hardware Circuit Design

182. LCD – FSMC Control LCD Display Case – FSMC Addressing

183. LCD – FSMC Control LCD Display Case – FSMC Configuration

184. LCD – FSMC Control LCD Display Case – LCD Macro Definitions and Low-Level Operation Interfaces

185. LCD – FSMC Control LCD Display Case – Reading LCD Module ID

186. LCD – FSMC Control LCD Display Case – Setting Full-Screen Background Color

187. LCD – Review

188. LCD – FSMC Control LCD Display Case – Displaying English Characters

189. LCD – FSMC Control LCD Display Case – Displaying Strings

190. FSMC Control LCD Display Case – Displaying Chinese Characters

191. FSMC Control LCD Display Case – Displaying Images

192. LCD – FSMC Control LCD Display Case – Drawing Dots, Lines, and Rectangles

193. FSMC Control LCD Display Case – Drawing Circles

194. FSMC Control LCD Display Case – HAL Library Implementation

Fun Fact:

If your friends are living such happy lives every day,

they wouldn’t need to take photos to show off on their friend circles.

Many people are like this:

They can suffer, but their friend circle cannot!

In reality: exhausted, never climbing again.

Friend Circle: A small mountain, successfully conquered!

In reality: the beach is too sunny, the wind is too strong…

Friend Circle: The sunshine is just right, the breeze is pleasant.

In reality: what a lousy internet celebrity spot, I was deceived.

Friend Circle: So happy to check in with someone!

In reality: My legs are covered in mosquito bites.

Friend Circle: Brave people enjoy the world first!

In reality: Is this tea really eighty bucks?

Friend Circle: Stealing half a day of leisure.

Even if living in a rough state, one must enjoy a polished friend circle!

Hot Knowledge:

If a girl posts a motivational quote with a selfie in her friend circle,

it means she just wanted to post a selfie.

But if she posts a motivational quote without any selfie,

that means she had a fight with her boyfriend or broke up.

Some girls’ friend circles are only visible for three days,

because they lack the confidence to always look like the same person.

Some girls’ friend circles can be scrolled through for a whole night,

thinking they’ve seen her entire life,

only to find it’s just from last month…

I opened my friend circle and saw that every person’s profile was written with the words “the years are quiet.”

I couldn’t sleep, so I carefully looked for half the night,

only to see the hidden words,

the screen was filled with three words: “so annoying!”

Teacher Wu rarely posts, but when he does, it’s shocking:

“Friends, it’s been a long time since I posted on my friend circle.

How is everyone? Is everything normal?”

Do you want to learn some hardcore technology?”

老司机发车,通关STM32!

Scan or click on the bottom left corner “Read the original text”:

STM32 Embedded Tutorial Series by Shanguigu

I said I wouldn’t learn,

Teacher Wu got angry and posted a friend circle:

“Don’t fear a god-like opponent,

just fear a pig-like teammate.”

I seriously suspect this post is visible only to me…

Don’t flaunt happiness, don’t flaunt sweetness,

don’t flaunt wealth, and don’t flaunt success.

Physical science tells us,

flaunting always loses moisture,

while refrigeration is the best way to preserve freshness.

——Lu Yao

Make life easier,

don’t post a friend circle expecting attention.

Spiritually internalize: “Bring the flowers into your eyes.”

What does it mean to bring the flowers into your eyes?

I had a very good meal,

my first reaction was to post it in my friend circle,

but this thought lasted only a second or two,

and I cut it off.

If it were before, I might have shared it,

and my emotions would be controlled by what I shared,

worrying about whether others liked it or commented on it,

and if not, I would feel lost.

Not sharing means nothing will appear,

I just had a very good meal.

I remember this place, and I will come again next time,

and if there’s a need for social interaction, I will bring someone along.

I consumed this meal, rather than sharing it out.

New Embedded Videos Recently Released

Schematic & PCB Design Tutorial

Linux Application Layer Development

Quick Start with Ubuntu

Digital Circuits: Building a Computer from Scratch

C Language Intensive Tutorial

Shanghai Embedded is fully booked in advance,

Beijing & Shenzhen are hard to get a seat,

For inquiries about Shanguigu Embedded Courses, scan the code:

STM32 Embedded Tutorial Series by Shanguigu

Leave a Comment