目录

一、配套器材简单认识(实验套件)

二、ARM基础概念

三、STM32基本概念

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

五、F103不同型号外设对比

六、STM32片上资源(外设Peripheral)

✨内核内部外设

✨内核外部外设

七、系统架构框图(Cortex‑M3内核)

1. 内核总线

2. 片上总线

3. DMA(直接存储器访问)

八、引脚定义(STM32F103C8T6 LQFP48)

(一)关键引脚说明

1.第1引脚:VBAT 备用电池引脚

2.第2引脚 PC13(TAMPER‑RTC)

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、比较器供电)

7、第10-19引脚

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

(二)引脚分类

九、BOOT启动配置(BOOT1、BOOT0)

十、STM32最小系统原理图

十一、STM32F103C8T6原理图

十二、易错知识总结


一、配套器材简单认识(实验套件)

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

二、ARM基础概念

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

Cortex‑M3属于嵌入式微控制器内核,专门面向单片机场景。

三、STM32基本概念

  1. 定义 STM32是ST(意法半导体)公司,基于ARM Cortex‑M内核开发的32位微控制器(MCU)

分工模式:ARM公司只设计内核IP;ST等半导体厂商拿到内核IP,设计外围存储器、外设电路,生产出完整芯片

  1. 应用领域 广泛用于嵌入式领域:智能车、无人机、机器人、无线通信、物联网、工业控制、消费娱乐电子产品。
  2. 芯片特点 性能优异、片上资源丰富、功耗低,是经典嵌入式MCU。
  3. 江科大课程所用型号:STM32F103C8T6
  • 所属系列:STM32F1主流系列(Mainstream)
  • CPU内核:ARM Cortex‑M3
  • 主频:72\ \mathrm{MHz}
  • RAM(运行内存):20\mathrm{K}\ \mathrm{SRAM},程序运行时临时存放变量
  • ROM(程序存储):64\mathrm{K}\ \mathrm{Flash},掉电不丢失,存放编译好的程序代码
  • 供电电压:2.0\sim3.6\mathrm{V}标准3.3V供电;和5V供电的51单片机不同,5V电源必须经过稳压转为3.3V才能给STM32供电
  • 封装:LQFP48,一共48个引脚

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

STM32 F 103 C 8 T 6

字段含义
STM32基于ARM内核的32位MCU
F通用类型
103增强型子系列
C48引脚
864K字节Flash
TLQFP封装
6工业级温度‑40℃ ~ 85℃

另例:STM32F103RCT6

R:64引脚;C:256K Flash;T:LQFP;6:‑40~85℃

五、F103不同型号外设对比


STM32F103T/C/R/V(引脚分别36/48/64/100脚)

  1. 存储器
    • T:Flash64K,SRAM20K
    • C:Flash64K/128K,SRAM20K
    • R/V:Flash64K/128K,SRAM20K
  2. 定时器
    • 高级定时器:TIM1(1个)
    • 通用定时器:TIM2/TIM3/TIM4(3个)
    • 注意:无基本定时器
  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型号具备
  4. GPIO:引脚越多GPIO数量越多,T=26、C=37、R=51、V=80
  5. 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设计的片上外设

✨内核内部外设

  1. NVIC 嵌套向量中断控制器 内核内部,专门管理中断,配置中断优先级,处理各类中断请求。
  2. SysTick 系统滴答定时器 给RTOS操作系统(FreeRTOS、UCOS)提供定时,用于任务切换;课程中也会用SysTick实现软件Delay延时函数。

✨内核外部外设

  1. RCC 复位和时钟控制 配置系统时钟;STM32外设上电默认关闭时钟,必须开启时钟,外设才能工作。是使用所有外设的前提。
  2. GPIO 通用IO口 输入输出引脚;可以点亮LED、读取按键电平信号。
  3. AFIO 复用IO口 重定义引脚复用功能,同时配置外部中断引脚。
  4. EXTI 外部中断 引脚电平发生变化,触发外部中断,CPU跳转执行中断服务函数。
  5. TIM 定时器 分为高级、通用、基本定时器;功能:定时中断、测量信号频率、输出PWM波形、正交编码器接口。
  6. ADC 模数转换器 内置12位ADC,直接读取IO口模拟电压,不需要外部AD芯片;可以配合电位器做AD采集。
  7. DMA 直接内存访问 不占用CPU,自主完成大批量数据搬运,减轻CPU负担。
  8. USART 同步/异步串口通信 串口,用于模块、电脑之间数据收发。
  9. I2C、SPI 两套常用串行通信协议; 例:OLED屏幕使用I2C通信;W25Q64 Flash模块使用SPI通信。
  10. RTC 实时时钟 芯片内部完成时分秒计时,接后备电池后,主电源掉电依旧继续走时。
  11. CRC 循环冗余校验 数据校验算法,检测传输数据是否出错。
  12. PWR电源控制、BKP备份寄存器 电源管理,备份寄存器配合RTC后备电池保存少量数据。
  13. IWDG独立看门狗、WWDG窗口看门狗 看门狗;程序死机、死循环、电磁干扰跑飞时,自动复位芯片,保障系统稳定。

C8T6没有:DAC数模转换器、SDIO(SD卡接口)、FSMC存储器控制器、USB‑OTG(STM32充当USB主机)。

七、系统架构框图(Cortex‑M3内核)

1. 内核总线

  1. ICode总线:指令总线,读取Flash里存放的程序代码
  2. DCode总线:数据总线,读取常量、调试数据
  3. System系统总线:访问SRAM,存放程序运行时的变量

2. 片上总线

  1. AHB(先进高性能总线):高速总线 挂载:RCC复位时钟控制器、DMA、SDIO、FSMC、Flash接口、SRAM
  2. 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
  • BOOT0BOOT1 启动模式配置引脚,复位瞬间采样引脚电平,决定芯片从哪块存储区域启动。
  • 第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)

说明

BOOT1BOOT0启动区域用途
X(任意)0主闪存Flash正常产品运行,程序烧录到Flash,上电直接运行用户代码(最常用)
01系统存储器(System Memory)串口ISP下载;出厂内置ROM的BootLoader,通过USART1把程序烧写进Flash,不需要仿真器
11内置SRAMSRAM调试;程序下载运行在内存,断电丢失,用于调试

关键说明:

  1. BOOT引脚只在复位之后SYSCLK第4个上升沿采样锁存,之后BOOT引脚就无效。运行过程中改变BOOT电平,不会改变当前运行区域,必须复位/重新上电才生效
  2. 系统存储器(System Memory):芯片出厂固化,用户不能改写,专门做串口下载Bootloader。
  3. SRAM启动:SRAM掉电丢失,不能保存程序,只适合调试。
  4. 核心板BOOT0/BOOT1用跳线帽配置:
    • 跳线接GND →电平0;跳线接3.3V →电平1。
    • 日常使用:BOOT0接GND(0),直接Flash启动。
    • 串口下载时:BOOT0接3.3V(1),BOOT1接GND(0),复位,进入串口Bootloader。

十、STM32最小系统原理图

最小系统必须具备4部分:电源电路、复位电路、晶振电路、BOOT配置电路

十一、STM32F103C8T6原理图

十二、易错知识总结

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

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐