本章概述思维导图:

认识STM32
STM32是什么
STM32是意法半导体(STMicroelectronics)推出的32位微控制器(MCU)系列,其核心采用ARM Cortex-M系列处理器内核(如Cortex-M0、M3、M4、M7等)。作为嵌入式系统的核心组件,STM32以高性能、低功耗、高集成度著称,广泛应用于工业控制、智能家居、物联网、消费电子等领域。
ST:意法半导体,是一个公司的名字;
M:Microelectronics的缩写,表示微控制器,要注意微控制器和微处理器的区别;
32:32bit的意思,表示这是一个32bit的微控制器;
ARM是什么
ARM(Advanced RISC Machine)是一家英国芯片设计公司,专注于处理器架构设计与授权。其核心业务是开发高性能、低功耗的RISC处理器架构(如Cortex-A、Cortex-R、Cortex-M系列),并通过IP授权模式与全球半导体厂商合作,生产各具特色的芯片。
STM32与ARM的关系
ARM提供底层架构
ARM设计处理器内核(如Cortex-M3)并授权给意法半导体等厂商,定义指令集、寄存器集、异常模型等硬件规范。
STM32实现具体产品
意法半导体基于ARM Cortex-M内核,集成外设资源(如GPIO、定时器、通信接口),开发出STM32系列微控制器,满足不同应用场景的需求。
关系如图所示:

总结:STM32与ARM的关系是协同模式,ARM设计处理器内核(如Cortex-M3)及相关外围组件的电路设计方案。ST公司依靠设计方案设计出STM32系列微控制器芯片;
STM32基于ARM Cortex内核的32位微控制器和微处理器汇总图:

STM32分类
根据内核架构、性能需求和应用场景,可分为超低功耗系列、主流系列和高性能系列三大类STM32详细分类如图所示

一、超低功耗系列(Low Power)
核心目标:以低功耗为核心,适用于电池供电设备(如可穿戴设备、传感器节点、物联 网设备)。
内核类型:Cortex-M0、Cortex-M3、Cortex-M4。
代表型号:
STM32L0系列:基于Cortex-M0内核,适用于低功耗、长时间运行的应用。
STM32L1系列:基于Cortex-M3内核,平衡功耗与性能,支持丰富的外设。
STM32L4系列:基于Cortex-M4内核,提供更高性能和更多外设,适合需要浮点运算的场景。
二、主流系列(Mainstream)
核心目标:以性价比为核心,适用于广泛的中低端应用场景。
内核类型:Cortex-M0、Cortex-M3、Cortex-M4。
代表型号:
STM32F0系列:入门级MCU,成本低,适合简单控制任务(如家电控制、玩具)。
STM32F1系列:基础型,基于Cortex-M3内核,主频72MHz,外设丰富,适用于工 业控制、消费电子。
STM32F3系列:专为电机控制、电源转换优化,支持混合信号处理。
三、高性能系列(High Performance)
核心目标:以极致性能为核心,适用于对计算能力、实时性要求极高的场景。
内核类型:Cortex-M3、Cortex-M4、Cortex-M7。
代表型号:
STM32F2系列:高性能,支持复杂数学运算和数据处理。
STM32F4系列:基于Cortex-M4内核,主频180MHz,支持DSP指令和浮点运算, 适合高速数据处理和图形显示。
STM32F7系列:基于Cortex-M7内核,提供高吞吐量和实时操作能力。
STM32H7系列:极高性能,结合高速处理器核和丰富外设,适用于复杂工业和消 费应用。
四、其它特殊系列
STM32G0/G4系列:
针对成本敏感型娱乐设备(如游戏机、电子玩具)设计,平衡功耗与性能。
STM32WB系列:
集成Wi-Fi和蓝牙功能,适用于物联网连接设备。
STM32的命名规则

例如32位微控制器芯片名称为:"STM32F051R8T6XXX"详细讲解:
1、STM32:表示是ST生产的32位微控制器芯片
2、F:芯片的类别为基础型
3、051:表示芯片的特定功能为入门级
4、R:表示引脚数量为64或66引脚
5、8:表示Flash闪存容量为64KB
6、T:表示为芯片的封装为:QFP
7、6:表示为芯片的工作温度范围为:-40°C~+85°C(工业级)
8、X:表示为芯片固件版税
9、XX:表示为芯片选项
STM32F103C8T6简介
STM32F103C8T6是由意法半导体(STMicroelectronics,简称ST)于2007年推出的基于ARM Cortex-M3内核的32位微控制器,属于STM32 F1系列。实物图如下:

STM32F103C8T6芯片参数表:

STM32F103C8T6芯片参数说明
内核:基于ARM Cortex-M3 32位RISC处理器
工作条件:
工作电压:2.0V~3.6V,兼容低功耗设计。
温度范围:-40°C~+85°C(工业级),适应恶劣环境。
主频:72MHZ
存储器:
Flash:64KB,用于存储程序代码。
SRAM:20KB,用于数据存储和运行时变量。
芯片封装:LQFP48(48引脚),尺寸紧凑,适合空间受限的应用场景。
GPIO:37个通用输入/输出引脚,支持复用功能(如定时器、串口、I2C等)。
定时器:4个16位定时器
通用定时器:3个16位定时器,支持输入捕获、输出比较、PWM生成。
高级定时器:1个,支持死区插入和紧急制动,适用于电机控制。
ADC模数转换器:2个12位模数转换器,各10转换通道
通信接口:
USART(串口):3个,支持同步异步串行通信
SPI:2个,支持高速同步通信
I2C:2个,支持多设备总线通信
CAN:1个,支持汽车点阵和工业网络通信
USB Device:1个,支持设备模式,便于与PC或其它USB主机连接
STM32F103C8T6管脚介绍
STM32F103C8T6采用LQFP48封装,共48个引脚,包含通用I/O、电源、特殊功能及复用接口。以下按端口分类详细说明各引脚功能及复用选项:

在开发板中电路原理图:

一、电源与特殊功能引脚
|------------------------------------------------------------|----------------------------|
| 引脚 | 功能描述 |
| VDD(24,36,48) | 主电源输入(3.3V),需就近接滤波电容 |
| VSS(23,35,47) | 接地引脚 |
| VBAT(2) | 后备电源(接电池/3.3V),维持RTC和备份寄存器 |
| VDDA/VSSA(9, 8 ) | 模拟电源(ADC/DAC专用),需与数字电源隔离 |
| OSC_IN/OSC_OUT(5 , 6 ) | 外部高速晶振(8MHz)输入/输出 |
| OSC32_IN/OSC32_OUT(3 , 4 ) | 外部低速晶振(32.768kHz)输入/输出 |
| NRST(7) | 复位引脚(低电平有效,外接RC电路) |
| BOOT0(44) | 启动模式选择(配合BOOT1配置) |
二、GPIO端口及复用功能
PA端口
|-------------------|--------------|------------------------------------------------------|
| 引脚 | 默认功能 | 复用功能 |
| PA0-PA7 | GPIO/外部中断 | ADC1_IN0-IN7、TIM2/TIM5通道、USART2_TX/RX、SPI1_MOSI/MISO |
| PA8-PA11 | GPIO | TIM1通道、USART1_CK/CTS、MCO输出 |
| PA12-PA15 | GPIO | USART1_RTS、TIM1_ETR、JTAG调试接口 |
| PA9/PA10 | USART1_TX/RX | 串口通信、GPIO、外部中断 |
| PA2/PA3 | USART2_TX/RX | 串口通信、GPIO、外部中断 |
PB端口
|-------------------|--------------|---------------------------------------|
| 引脚 | 默认功能 | 复用功能 |
| PB0-PB1 | GPIO/外部中断 | ADC1_IN8-IN9、TIM3/TIM4通道 |
| PB6/PB7 | GPIO | I2C1_SCL/SDA、TIM4_CH1/CH2 |
| PB8-PB15 | GPIO | I2C1_SCL/SDA、TIM4通道、SPI2_NSS/SCK/MOSI |
| PB10/PB11 | USART3_TX/RX | 串口通信、I2C2_SCL/SDA |
| PB12-PB15 | GPIO | SPI2_NSS/SCK/MISO/MOSI、TIM1通道 |
PC端口
|-------------------|-----------|---------------------|
| 引脚 | 默认功能 | 复用功能 |
| PC13-PC15 | GPIO/外部中断 | RTC_TAMPER、低功耗模式唤醒源 |
其它端口
|-----------------|---------------------------|
| 引脚 | 功能描述 |
| PD0-PD2 | GPIO/外部中断(部分型号不可用) |
| PE0-PE5 | GPIO/外部中断 |
| PF0-PF1 | GPIO/外部中断(常用于晶振,不建议作普通IO) |
三、通信接口复用
USART1:PA9(TX)、PA10(RX),支持高速串口通信
USART2:PA2(TX)、PA3(RX),扩展串口通信能力
USART3:PB10(TX)、PB11(RX)
I2C1:PB6(SCL)、PB7(SDA),支持SMBus协议
I2C2:PB10(SCL)、PB11(SDA)
SPI1:PA4(NSS)、PA5(SCK)、PA6(MISO)、PA7(MOSI),全双工通信
SPI2:PB12-PB15,支持多主从模式
USB:PA11/PA12(需外部PHY芯片)
四、定时器与PWM功能
TIM1(高级定时器):PA8-PA11,支持PWM输出、输入捕获。
TIM2/TIM3/TIM4:多通道PWM输出,适配电机控制、LED调光。
TIM1通道:PA8(CH1)、PA9(CH2)、PA10(CH3),支持互补PWM输出。
五、调试与下载接口
SWD调试:PA13(SWDIO)、PA14(SWCLK),支持在线调试和程序下载
JTAG接口:PA15(JTDI)、PB3(JTDO)、PB4(JTRST),兼容标准JTAG协议
六、特殊功能配置
ADC通道:PA0-PA7(IN0-IN7)、PB0-PB1(IN8-IN9),12位分辨率
温度传感器:内部通道(IN16),输出与温度成比例的电压
VREFINT:内部参考电压(约1.2V),用于ADC校准
BOOT模式:BOOT0+BOOT1配置启动模式(Flash/系统存储器/SRAM)
七、配置注意事项
引脚复用机制:通过寄存器(如GPIOx_CRL/CRH、AFIO_MAPRx)配置功能模式
电气特性:非FT引脚仅支持3.3V,超压可能损坏芯片;FT引脚支持5V容限
启动模式:BOOT0=0(Flash启动)、BOOT0=1(系统存储器启动)
电源管理:VDDA/VSSA需单独滤波,避免数字噪声干扰模拟电路
STM32系统架构
STM32F103C8T6的系统架构基于ARM Cortex-M3内核设计,通过模块化总线架构实现高性能与低功耗的平衡,其核心架构可分解为以下维度:

1、核心处理单元与存储架构
Cortex-M3内核:采用三级流水线哈佛架构,独立ICode(指令)总线与DCode(数据)总线分别访问Flash和SRAM
存储子系统:
64KB Flash:通过ICode总线直接访问,支持程序存储与代码执行,具备ECC校验功能。
20KB SRAM:通过DCode总线访问,作为数据存储与堆栈空间,支持字节/半字/字访问。
FSMC接口:扩展外部存储器(如SDRAM、NOR Flash),支持8/16/32位数据总线,最大寻址空间4GB。
2、总线矩阵与数据传输控制
总线架构:
AHB系统总线:连接内核、DMA、FSMC、SDIO等高速模块,采用32位总线宽度,支持突发传输模式。
APB1/APB2总线:APB1(低速外设,36MHz)连接CAN、USB、I2C等;APB2(高速外设,72MHz)连接ADC、TIM1、GPIO等。
桥接器:实现AHB与APB总线的协议转换与时钟域隔离。
DMA控制器:
DMA1(7通道)与DMA2(5通道):支持内存到内存、内存到外设、外设到内存的传输,每个通道可配置传输地址、数据宽度、传输量,减少CPU干预,提升数据吞吐量。
因为系统结构非常复杂,不能靠短短一段文字进行全面的知识点补充。需要我们一起在学习的过程中逐步理解学习!
制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!