江科大STM32学习笔记 | 第1章 综述(完整笔记)
目录
3、第3引脚 PC14‑OSC32_IN,第4引脚PC15‑OSC32_OUT(RTC晶振)
4、第5、6引脚 OSC_IN / OSC_OUT(HSE高速外部晶振)
5、第7引脚 NRST 复位引脚(N=Negative低电平有效)
6、第8、9引脚 VSSA、VDDA 模拟电源(ADC、RTC、比较器供电)
8、第20引脚 PB2 / BOOT1;第44引脚 BOOT0
9、电源引脚:23 VSS_1,24 VDD_1;35 VSS_2,36 VDD_2;47 VSS_3,48 VDD_3
10、第34 PA13 /JTMS‑SWDIO;37 PA14 /JTCK‑SWCLK
一、配套器材简单认识(实验套件)

- 接线类:杜邦线、飞线、面包板,用于硬件电路搭建
- 下载调试工具:ST‑Link,给STM32下载程序、调试;USB转串口模块,串口调试打印信息
- 主控最小系统板:C8T6核心板
- 各类传感器模块
- OLED(I2C)屏幕、电位器(AD采集)、按键、LED灯
- 热敏电阻、光敏电阻、红外对射传感器
- MPU6050(I2C姿态传感器)、W25Q64 Flash(SPI存储)
- 旋转编码器、有源蜂鸣器
- 执行器件
- SG90舵机:接收PWM占空比信号,转动并锁定到指定角度
- TB6612电机驱动、直流电机:控制电机转动
二、ARM基础概念

- ARM两层含义
- ARM公司:全球知名半导体IP知识产权供应商,不生产芯片,只设计处理器内核。
- ARM处理器内核(IP):给芯片厂商授权使用。
- 市场地位 全球超过95%手机、平板设备采用ARM架构。
- Cortex处理器分类
| 类别 | 代表内核 | 用途 |
|---|---|---|
| Application(A) | Cortex‑A系列 | 手机、平板,高性能应用处理器 |
| Embedded(R/M) | Cortex‑R、Cortex‑M系列 | 嵌入式单片机;课程使用Cortex‑M3(M代表Microcontroller微控制器) |
Cortex‑M3属于嵌入式微控制器内核,专门面向单片机场景。
三、STM32基本概念

- 定义 STM32是ST(意法半导体)公司,基于ARM Cortex‑M内核开发的32位微控制器(MCU)。
分工模式:ARM公司只设计内核IP;ST等半导体厂商拿到内核IP,设计外围存储器、外设电路,生产出完整芯片。
- 应用领域 广泛用于嵌入式领域:智能车、无人机、机器人、无线通信、物联网、工业控制、消费娱乐电子产品。
- 芯片特点 性能优异、片上资源丰富、功耗低,是经典嵌入式MCU。
- 江科大课程所用型号:STM32F103C8T6
- 所属系列:STM32F1主流系列(Mainstream)
- CPU内核:ARM Cortex‑M3
- 主频:
- RAM(运行内存):
,程序运行时临时存放变量
- ROM(程序存储):
,掉电不丢失,存放编译好的程序代码
- 供电电压:
,标准3.3V供电;和5V供电的51单片机不同,5V电源必须经过稳压转为3.3V才能给STM32供电
- 封装:LQFP48,一共48个引脚

四、芯片命名规则(STM32F103C8T6为例)

STM32 F 103 C 8 T 6
| 字段 | 含义 |
|---|---|
| STM32 | 基于ARM内核的32位MCU |
| F | 通用类型 |
| 103 | 增强型子系列 |
| C | 48引脚 |
| 8 | 64K字节Flash |
| T | LQFP封装 |
| 6 | 工业级温度‑40℃ ~ 85℃ |
另例:
STM32F103RCT6R:64引脚;C:256K Flash;T:LQFP;6:
‑40~85℃
五、F103不同型号外设对比

以STM32F103T/C/R/V(引脚分别36/48/64/100脚)
- 存储器
- T:Flash64K,SRAM20K
- C:Flash64K/128K,SRAM20K
- R/V:Flash64K/128K,SRAM20K
- 定时器
- 高级定时器:
TIM1(1个) - 通用定时器:
TIM2/TIM3/TIM4(3个) - 注意:无基本定时器
- 高级定时器:
- 通信外设
- SPI:C/R/V型号2个(SPI1、SPI2);T型号仅SPI1
- I²C:C/R/V型号2个;T型号仅I²C1
- USART:C/R/V型号3个;T型号2个
- USB、CAN:C/R/V型号具备
- GPIO:引脚越多GPIO数量越多,T=26、C=37、R=51、V=80
- ADC:T/C:2个ADC,10通道;R/V:2个ADC,16通道
六、STM32片上资源(外设Peripheral)

注意:F1大类有全部外设,但C8T6型号不具备DAC、SDIO、FSMC、USB‑OTG这4个外设。 区分:NVIC、SysTick属于Cortex‑M3内核内部外设;其余都是内核之外,ST设计的片上外设。
✨内核内部外设
- NVIC 嵌套向量中断控制器 内核内部,专门管理中断,配置中断优先级,处理各类中断请求。
- SysTick 系统滴答定时器 给RTOS操作系统(FreeRTOS、UCOS)提供定时,用于任务切换;课程中也会用SysTick实现软件Delay延时函数。
✨内核外部外设
- RCC 复位和时钟控制 配置系统时钟;STM32外设上电默认关闭时钟,必须开启时钟,外设才能工作。是使用所有外设的前提。
- GPIO 通用IO口 输入输出引脚;可以点亮LED、读取按键电平信号。
- AFIO 复用IO口 重定义引脚复用功能,同时配置外部中断引脚。
- EXTI 外部中断 引脚电平发生变化,触发外部中断,CPU跳转执行中断服务函数。
- TIM 定时器 分为高级、通用、基本定时器;功能:定时中断、测量信号频率、输出PWM波形、正交编码器接口。
- ADC 模数转换器 内置12位ADC,直接读取IO口模拟电压,不需要外部AD芯片;可以配合电位器做AD采集。
- DMA 直接内存访问 不占用CPU,自主完成大批量数据搬运,减轻CPU负担。
- USART 同步/异步串口通信 串口,用于模块、电脑之间数据收发。
- I2C、SPI 两套常用串行通信协议; 例:OLED屏幕使用I2C通信;W25Q64 Flash模块使用SPI通信。
- RTC 实时时钟 芯片内部完成时分秒计时,接后备电池后,主电源掉电依旧继续走时。
- CRC 循环冗余校验 数据校验算法,检测传输数据是否出错。
- PWR电源控制、BKP备份寄存器 电源管理,备份寄存器配合RTC后备电池保存少量数据。
- IWDG独立看门狗、WWDG窗口看门狗 看门狗;程序死机、死循环、电磁干扰跑飞时,自动复位芯片,保障系统稳定。
C8T6没有:DAC数模转换器、SDIO(SD卡接口)、FSMC存储器控制器、USB‑OTG(STM32充当USB主机)。
七、系统架构框图(Cortex‑M3内核)

1. 内核总线
- ICode总线:指令总线,读取Flash里存放的程序代码
- DCode总线:数据总线,读取常量、调试数据
- System系统总线:访问SRAM,存放程序运行时的变量
2. 片上总线
- AHB(先进高性能总线):高速总线 挂载:RCC复位时钟控制器、DMA、SDIO、FSMC、Flash接口、SRAM
- APB桥接:AHB通过桥接分出APB1、APB2
- APB2:最高72MHz,挂载高速外设:GPIO、USART1、TIM1、ADC、SPI1
- APB1:最高36MHz,挂载低速外设:USART2‑3、I2C、SPI2、TIM2‑4、CAN、USB
3. DMA(直接存储器访问)
- 作用:CPU的小助手,独立完成大量数据搬运,不占用CPU,避免数据覆盖
- DMA1:7个通道;DMA2:5个通道;外设发出DMA请求,触发传输。
存储器相关模块:Flash接口、Flash、SRAM、FSMC、SDIO 外设模块:GPIO、ADC、USART、SPI、I2C、TIM、CAN、USB等
详见:STM32学习 | 第1章 综述之STM32F103系统架构(江科大STM32学习笔记)-CSDN博客
八、引脚定义(STM32F103C8T6 LQFP48)

(一)关键引脚说明
1.第1引脚:VBAT 备用电池引脚
- 功能:芯片主电源
VDD掉电之后,由VBAT给RTC实时时钟 + 备份寄存器单独供电,维持时间和备份寄存器数据不丢失。 - 硬件接法:一般接3V纽扣电池;当板子3.3V主电源正常供电时,芯片内部会自动切换,优先使用VDD,断开纽扣电池供电。
- 注意:
- VBAT不能接大于3.6V电压,否则烧毁备份域电路;
- 如果不接纽扣电池,RTC断电就会丢失时间;
- 备份寄存器是16bit的专用寄存器,不属于片上SRAM,主电源断电依然保存数据。
2.第2引脚 PC13(TAMPER‑RTC)
复用功能:
- 普通GPIO:可以作为普通IO输入输出,核心板上这个引脚接了一个LED测试灯;
- RTC侵入检测TAMPER:安全检测引脚,电平跳变会清空全部备份寄存器;
- RTC输出:可以输出RTC的1Hz秒脉冲,用来校准时钟。
3、第3引脚 PC14‑OSC32_IN,第4引脚PC15‑OSC32_OUT(RTC晶振)
- 专门接32.768KHz低速外部晶振(LSE),给RTC提供精准计时时钟。32768 = 2^{15},分频15次正好得到1Hz秒信号。
- 硬件:晶振两端配20pF起振电容到GND。
- 注意:
- 32.768K晶振起振慢;电容值不对会不起振;
- PC14、PC15作为RTC晶振使用时,不能当做普通GPIO。
4、第5、6引脚 OSC_IN / OSC_OUT(HSE高速外部晶振)
- 接8MHz主晶振(HSE),核心板使用8M无源晶振,搭配20pF负载电容。
- 内部PLL锁相环:把8M输入倍频,STM32F1最大系统时钟72MHz。 f_{SYS}=f_{HSE}\times PLLMUL 例:8M ×9 =72MHz
晶振是无源器件,芯片内部提供振荡电路,外部只需要晶振+匹配电容。 如果外部晶振损坏,可以使用芯片内部8MHz高速HSI RC振荡器,精度差。
5、第7引脚 NRST 复位引脚(N=Negative低电平有效)
- 低电平复位:拉低到GND,芯片立即复位;释放为高电平3.3V芯片开始运行。
- 核心板复位电路:RC上电复位电路,按键按下把NRST拉低实现手动复位。
复位类型:上电复位、手动按键复位、看门狗复位、软件复位。
6、第8、9引脚 VSSA、VDDA 模拟电源(ADC、RTC、比较器供电)
VSSA:模拟地(负);VDDA模拟电源正(3.3V),专门给片上模拟电路ADC、RC振荡器供电,隔离数字电路噪声,提升ADC采样精度。实操:硬件上一般VDDA接3.3V,VSSA接GND,部分板子串磁珠隔离数字噪声。不能悬空!否则ADC无法工作。
7、第10-19引脚
-
普通GPIO;
-
第10号引脚还是WKUP唤醒引脚:STM32进入待机模式,PA0上升沿信号,就可以把芯片从待机低功耗模式唤醒。
注意:待机模式功耗极低,唤醒只能由WKUP引脚或者RTC闹钟。
8、第20引脚 PB2 / BOOT1;第44引脚 BOOT0
BOOT0、BOOT1启动模式配置引脚,复位瞬间采样引脚电平,决定芯片从哪块存储区域启动。- 第20,21,22,25-33,41-43,45,46都是IO引脚
9、电源引脚:23 VSS_1,24 VDD_1;35 VSS_2,36 VDD_2;47 VSS_3,48 VDD_3
STM32分区供电,多组VDD/VSS电源地引脚,全部都需要供电。
- VDD =3.3V,VSS=GND。
- 每个电源引脚旁边放0.1μF去耦电容,滤除电源噪声,原理图上一般会大量出现C电容标志。
10、第34 PA13 /JTMS‑SWDIO;37 PA14 /JTCK‑SWCLK
调试接口引脚,支持两套调试协议:
- SWD(串行调试,只需要两根线SWDIO+SWCLK):下载调试只需要4根:SWDIO、SWCLK、GND、3.3V。就是ST‑Link常用模式,引脚少。
- JTAG:5根调试线,占用更多GPIO;当开启JTAG,PA13 PA14 PB3 PB4会被占用,不能做普通IO。
重点:如果把PA13 PA14配置普通GPIO,会导致SWD下载失效,芯片锁死!
(二)引脚分类
引脚按功能分为三类: 1.🔴电源引脚(类型S)
-
VDD:主电源+3.3V;VSS:GND地 -
VDDA/VSSA:模拟部分电源,给ADC、RC振荡供电 -
VBAT:备用电池引脚,断电时给RTC实时时钟、备份寄存器供电2.🔵最小系统引脚
-
OSC_IN / OSC_OUT:接外部8M主晶振,内部PLL倍频到72MHz -
NRST:复位引脚,低电平复位 -
BOOT0 / BOOT1(PB2):启动模式配置引脚 -
PA13(JTMS/SWDIO)、PA14(JTCK/SWCLK):调试下载口,支持JTAG、SWD两种调试方式3.🟢GPIO功能I/O口(类型I/O)
-
FT标识:引脚可以容忍5V电压输入;普通IO为3.3V容忍 -
每个GPIO有主功能、默认复用功能、重定义功能;一个IO口可复用多个外设,冲突时可以重映射到别的引脚。
-
PA0有特殊唤醒功能
WKUP,可以唤醒待机模式芯片。
九、BOOT启动配置(BOOT1、BOOT0)

说明
| BOOT1 | BOOT0 | 启动区域 | 用途 |
|---|---|---|---|
| X(任意) | 0 | 主闪存Flash | 正常产品运行,程序烧录到Flash,上电直接运行用户代码(最常用) |
| 0 | 1 | 系统存储器(System Memory) | 串口ISP下载;出厂内置ROM的BootLoader,通过USART1把程序烧写进Flash,不需要仿真器 |
| 1 | 1 | 内置SRAM | SRAM调试;程序下载运行在内存,断电丢失,用于调试 |
关键说明:
- BOOT引脚只在复位之后SYSCLK第4个上升沿采样锁存,之后BOOT引脚就无效。运行过程中改变BOOT电平,不会改变当前运行区域,必须复位/重新上电才生效。
- 系统存储器(System Memory):芯片出厂固化,用户不能改写,专门做串口下载Bootloader。
- SRAM启动:SRAM掉电丢失,不能保存程序,只适合调试。
- 核心板BOOT0/BOOT1用跳线帽配置:
- 跳线接GND →电平0;跳线接3.3V →电平1。
- 日常使用:BOOT0接GND(0),直接Flash启动。
- 串口下载时:BOOT0接3.3V(1),BOOT1接GND(0),复位,进入串口Bootloader。
十、STM32最小系统原理图
最小系统必须具备4部分:电源电路、复位电路、晶振电路、BOOT配置电路。

十一、STM32F103C8T6原理图

十二、易错知识总结
- ICode取指令,DCode取常量数据,System总线访问SRAM变量。
- APB2最大72MHz,APB1最大36MHz。
- DMA用来搬运数据,解放CPU。
- FT引脚可以承受5V输入;NRST低电平复位;VBAT给RTC备份供电。
- BOOT引脚只有复位上电瞬间有效,程序运行时修改BOOT电平完全不起作用;三种启动模式的使用场景。
- GPIO复用功能冲突,可以做引脚重映射。
- 为什么需要多组VDD/VSS? STM32内部数字逻辑数量大,多电源引脚分散大电流,降低压降;模拟电源VDDA/VSSA独立,隔离数字噪声,保证ADC精度。
- SWD下载失败常见原因
① BOOT配置错误;
② PA13/PA14被代码重映射为普通GPIO;
③晶振不起振;
④仿真器接线错误。 - RTC不保存时间 VBAT没有接电池;32.768K晶振不起振;备份域没有开启。
- PC14 PC15做RTC晶振时不能用作普通IO。
- STM32F103C8T6供电3.3V;51单片机是5V系统。
- STM32外设上电时钟默认关闭,RCC模块必须开启时钟,外设才会工作。
- NVIC、SysTick是Cortex‑M3内核自带,不属于ST片上外设。
- 手册很重要:同系列不同型号,支持外设不一样,要查数据手册确认。
- RAM(SRAM)断电丢失,Flash断电保存程序代码。
更多推荐



所有评论(0)