你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32--STM32 微控制器详解

[复制链接]
flyingstar 发布时间:2025-10-13 10:35
一、引言
STM32 是一款基于 ARM Cortex-M 内核的 32 位微控制器,是由ST公司使用ARM公司设计的内核在通过完善外围电路,整个封装起来就做成了STM32,现在STM32广泛应用于嵌入式领域。本文将详细介绍 STM32 的特点、内核、系列、外设、命名规则、系统结构、引脚定义、启动配置和最小系统电路等内容。
二、STM32 简介
  • 名称含义:STM32 是意法半导体(ST)公司基于 ARM Cortex-M 内核开发的 32 位微控制器。其中,“ST” 代表 ST 公司,“M” 是微控制器(Microcontroller)的首字母,“32” 表示这是一款 32 位的单片机。
  • 性能对比:与 8 位的 51 单片机相比,STM32 的性能更强。ST 公司也推出了 8 位单片机 STM8。
  • 内部核心:STM32 内部的核心部分是 ARM Cortex-M 内核,由 ARM 公司设计。程序指令的执行、加减乘除的运算等都在内核里完成,相当于整个芯片的 CPU。
    & x! H3 r8 x' J
三、STM32 的应用领域
STM32 常应用于嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制和娱乐产品等。
  • 智能车:可以用 STM32 做一辆循迹小车,读取光电传感器或摄像头的数据,然后驱动电机前进和转弯。* S* `  ~( a. k0 G/ A" b
  • 无人机:用 STM32 读取陀螺仪,根据控制算法控制电机速度,保证飞机稳定飞行。3 \7 o. n0 H8 o
  • 机器人:用 STM32 驱动舵机,控制机器人关节,让机器人运动。
    4 P5 [2 g: x6 V2 s$ q8 j" C, w8 i' _/ Q
  • 无线通信:给 STM32 连接 2.4G 无线模块、蓝牙或 WiFi 模块,使其具备无线通信能力。
    - S* Q. Z$ k: l  j+ |4 q
  • 物联网:借助无线模块通信,通过 STM32 驱动继电器控制 220 伏电路通断。8 D9 x  r5 _$ ^# o
  • 工业控制:国产 PLC(工厂进行内部控制的) 内部主控可能是一块 STM32。
    / j( y: e3 O  ]- ]1 @: P- @
  • 娱乐产品:可以用 STM32 做爱心流水灯等娱乐电子产品。
    / C/ h5 Q# s$ y+ E! f- s. |: a- G# S8 A' {# M
四、STM32 家族系列
目前 STM32 主要有四个系列:高性能系列、主流系列、超低功耗系列和无线系列。
  • 高性能系列:有 STM32 F2、F4、F7、H7 等,如 STM32 H7 芯片是目前最强的 STM32 芯片,拥有双核微控制器。2 Q/ D: L! r: f( E, m( F6 k# @
  • 主流系列:本次教程使用的是 STM32 F1 系列,如 STM32 F103 C8T6,内核是 ARM Cortex-M3,主频 72 兆赫兹,RAM 大小 20K,ROM 大小 64K,供电电压 2.0 - 3.6 伏,标准 3.3 伏供电。
    ' |: [: H% u! j" n, x* @, A
  • 超低功耗系列:有 L0、L1、L4、L5 等型号。
    ( T3 G) ^5 F& L" r2 ~) v; @& j- K7 k
  • 无线系列:有 STM32 WL 和 STM32 WB。5 m2 d2 [$ R( b6 u

      J# r6 }, s$ f6 q2 Z
微信图片_2025-10-13_103238_706.png
* h. R2 S2 g) ]2 p  q补充:图片中的CoreMark是内核跑分,一般数字越大,性能越高五、ARM 内核介绍
  • ARM 公司:ARM 公司是全球领先的半导体知识产权(IP)提供商,只设计 ARM 内核而不生产实物,授权给各大厂商,收取授权费盈利。5 ]1 u+ G* {7 e) n  ?# `8 M- Z' F7 \
  • 内核型号:ARM 公司针对不同应用场景生产了各种型号的内核,STM32 使用的 Cortex-M 内核是其中一种。ARM 内核在 ARM 11 之后更改了命名方式,推出了 Cortex 系列,包括 A、R、M 三个子系列,分别适用于高端应用、实时性高的场景和单片机领域。$ I% ~' f1 d0 j7 |) f5 ]3 I
    4 @5 t8 C+ d/ S$ O
微信图片_2025-10-13_103243_254.png - K8 W  q% f: N* z4 n
六、STM32F103C8T6的相关介绍
  • 内核:ARM Cortex-M3 内核,具有 177 的内核跑分,主频为 72 兆赫兹。7 |, i* p% H/ e- s; t
  • 存储:RAM(运行内存,实际的存储介质是SRAM) 大小 20K,ROM(程序存储器,实际存储介质为 flash 闪存)大小 64K。9 V4 Z5 E4 m" B5 [# `
  • 供电:供电电压为 2.0 - 3.6 伏,标准 3.3 伏供电。与 51 单片机的 5 伏供电不同,若有 5 伏电压输入,需加稳压芯片降至 3.3 伏后再给芯片供电。
    * X: Q1 |3 q& v, D3 m& M
  • 封装:采用 LQFP48 封装,共有 48 个引脚。
    % X4 K; M1 _! r9 I/ m) T
    ' N3 g, \! j; {! Q' o
七、STM32 F103 C8T6 的片上资源和外设
STM32F103C8T6 的片上资源丰富,又称为外设(peripheral),可通过程序配置外设来完成各种功能。以下是对其片上资源的详细介绍:
位于 Cortex-M3 内核里面的外设
NVC(嵌套向量中断控制器):用于管理中断,比如配置中断优先级等。
CS(系统定时器):主要给操作系统提供定时服务,STM32 可以加入操作系统如 FreeRTOS、UCOS等,若使用这些操作系统,需要此定时器提供定时来进行任务切换功能。在本课程不使用操作系统的情况下,也可以用这个定时器完成类似 delay 函数的功能。
位于 Cortex-M3 内核以外的外设
RCC(复位和时钟控制):可以对系统的时钟进行配置,并且使能各模块的时钟。在 STM32 中,其他外设在上电的情况下默认是没有时钟的,不给时钟的情况下操作外设是无效的,外设也不会工作,这样的目的是降低功耗。所以在操作外设之前,必须要用 RCC 来完成时钟的使能。
GPIO(通用 I/O 口):可以用 GPIO 来点灯、读取按键等,这是单片机最基本的功能之一。
AFIO(复用 I/O 口):可以完成复用功能端口的重定义,还有中断端口的配置。
EXTI(外部中断):配置好外部中断后,当引脚有电平变化时,可以触发中断,让 CPU 来处理任务。
TIM(定时器):这是整个 STM32 最常用、功能最多的外设。TIM 分为高级定时器、通用定时器、基本定时器三种类型。其中高级定时器最为复杂,常用的是通用定时器。这个定时器不仅可以完成定时中断的任务,还可以完成测频率、生成 PWM 波形、配置成专用的编码器接口等功能。PWM 波形是电机驱动、舵机驱动最基本的要求。
ADC(模数转换器):STM32 内置了 12 位的 ADC 转换器,可以直接读取 IO 口的模拟电压值,无需外部连接 ADC 芯片,使用非常方便。
DMA(直接内存访问):可以帮助 CPU 完成搬运大量数据这样的繁杂任务。
USART(同步或异步串口):平时用的 USART 是异步串口的意思,这里的 USART 既支持异步串口,也支持同步串口,实际还是用异步串口比较多。
I2C 和 SPI(通信协议):STM32 也内置了它们的控制器,可以用硬件来输出时序波形,使用起来更高效。当然用通用 IO 口来模拟时序波形也是没有问题的。
CAN:一般由于汽车领域的通信。
USB:利用 STM32 的 USB 外设,可以做一个模拟鼠标、模拟 U 盘等设备。
RTC(实时时钟):在 STM32 内部完成年月日时分秒的计时功能,而且可以接外部备用电池,即使掉电也能正常运行。
CRC(校验):是一种数据的校验方式,用于判断数据的正确性,有了这个外设的支持,进行 CRC 校验就会更加方便一些。
PWR(电源控制):可以让芯片进入睡眠模式等状态,来达到省电的目的。
BKP(备份寄存器):这是一段存储器,当系统掉电时,仍可有备用电池保持数据,根据需要可以完成一些特殊功能。
IWDG(独立看门狗)\ WWDG(窗口看门狗):当单片机因为电池干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统的稳定。
DAC(数模转换器):可以在 IO 口直接输出模拟电压,是 ADC 模数转换的逆过程。
SDIO(SD 卡接口):可以用来读取 SD 卡。
FSMC(可变静态存储控制器):可以用于扩展内存或者配置成其他总线协议,用于某些硬件的操作。
USB OTG(USB 主机接口):用 OTG 功能,可以让 STM32 作为 USB 主机,去读取其他 USB 设备。
需要注意的是,这是 STM32F1 整个系列的所有外设,并不是所有型号都拥有全部外设,比如 STM32F103C8T6 就没有后面四个外设(SDIO、FSMC、USB OTG、DAC)。
微信图片_2025-10-13_103246_512.png
3 Y% Q/ C3 @$ \. j0 F1 ?八、STM32 F103 C8T6 的命名规则和系统结构
  • 命名规则:STM32 代表基于 ARM 核心的 32 位微控制器,F 代表通用类型,103 代表增强型,C 代表引脚数目是 48,8 代表 flash 闪存容量是 64K,T 代表封装类型是 LQFP,6 代表温度范围为 -40 - 85 摄氏度。
    4 b3 P: Z* h, `6 N: b. _! O$ }
  • 系统结构:STM32 F103 C8T6 的系统结构分为四个部分,左上角是 Cortex-M3 内核,引出三条总线连接 flash 闪存和其他外设。内核还通过系统总线连接 RAM、FMC 等。AHB(先进高性能总线)用于挂载主要外设,通过桥接连接到 APB(先进外设总线),APB2 性能比 APB1 高。右下角是外设种类和分布,左下角是 DMA(直接内存访问),可以作为内核 CPU 的小秘书,负责数据搬运等简单重复的工作。
    ; \0 m9 |- T5 a3 w8 C2 P3 `5 u. }$ {& i( o  m
微信图片_2025-10-13_103249_696.png # i2 c( W$ m9 _1 P, `+ W
九、STM32F103C8T6的系统结构1.整体结构划分1 Z& ?% e; z0 M3 q& Q3 l
可以将 STM32 的系统结构分为四个部分:8 e! O1 C+ u6 s$ ?) }, v7 h$ Q. N
左上角:Cortex-M3 内核。内核引出三条总线,分别是 ICode 的指令总线、DCode 的数据总线和 System 系统总线。+ V$ h1 C. E2 t* r& J
ICode 总线主要用于加载程序指令,连接到 Flash 闪存,Flash 中存储着编写的程序。4 S' B. s. @/ X
DCode 总线用于加载数据,如常量和调试参数等。
; Q  E+ ^" H0 D左下角:DMA(直接内存访问)部分。DMA 可以看作是内核 CPU 的小秘书,主要负责一些简单且反复的数据搬运工作。DMA 通过 DMA 总线连接到总线矩阵上,它可以拥有和 CPU 一样的总线控制权,用于访问外设。当需要 DMA 搬运数据时,外设会通过请求线发送 DMA 请求,然后 DMA 获得总线控制权,访问并转运数据,整个过程不需要 CPU 的参与,节省了 CPU 的时间。
8 M' t* h9 H! U" u0 h8 n$ R7 a% C( n右下角:主要介绍外设种类和分布。! \( G* G+ k4 P
中间部分:包括连接内核与外设的各种总线和桥接。
2.总线系统
AHB(先进高性能总线):用于挂载主要的外设,一般是最基本的或者性能比较高的外设,比如复位和时钟控制等最基本的电路,以及 SD 卡控制器(SDIO)也挂载在 AHB 上。
) k: p) S/ p3 n4 W4 t0 T! a两个桥接:连接到 APB2 和 APB1 两个外设总线上。由于 APB2 和 APB1 的总线协议、总线速度以及数据传送格式存在差异,所以需要这两个桥接来完成数据的转换和缓存。/ x$ G1 f- `: d$ d) [. U& R* n
APB2(先进外设总线 2):性能比 APB1 高一些,一般和 AHB 同频率,都是 72 兆赫兹。连接的都是一些外设中稍微重要的部分,比如 GPIO 端口,还有一些外设的 1 号选手,如 USART、SPI、TIM(高级定时器 TIM8 和其他通用定时器等)、ADC、EXTI、AFIO 等也接在 APB2 上面。
- }% K& Y$ q! i' \- M- Q' RAPB1(先进外设总线 1):一般是 36 兆赫兹。连接的是一些相对次要一点的外设,如 DAC、PWR、BKP 等。6 p# x) K. D4 B/ a. j/ o: {  {
微信图片_2025-10-13_103253_377.png
/ O8 P2 j1 @3 W+ e十、STM32 F103 C8T6 的引脚定义和启动配置
  • 引脚定义:引脚分为电源相关、最小系统相关和 I/O 口功能口。其中,VBAT 是备用电池供电引脚,可接 3 伏电池为 RTC 和备份寄存器供电;多个引脚可作为 I/O 口、侵入检测或 RTC 引脚;系统复位引脚 NIST 是低电平复位;多个引脚可作为启动配置引脚(BOOT0 和 BOOT1)、调试端口或普通 I/O 口。
    , [! r7 n! y- H! l1 U, j; p
  • 启动配置:通过配置 BOOT0 和 BOOT1 引脚选择启动模式。一般情况下,程序在 flash 程序存储器开始执行;也可以配置为系统存储器模式,用于串口下载程序;还可以配置为内置 SRAM 驱动S/ Q9 V8 M! g: `! l

    0 y4 Y# P; P4 j  M  y4 ^
微信图片_2025-10-13_103256_733.png   Z! O  l; O/ p/ y! X. W; J5 t
十一、STM32 最小系统电路
一般来说,单片机只有一个芯片是没有办法工作的,需要为它连接最基本的电路,这些最基本的电路就叫做最小系统电路。STM32 最小系统电路包括供电部分、晶振部分、复位电路和启动配置部分、下载端口。
1.供电部分:芯片四周有多个供电引脚,采用分区供电。主电源和模拟部分电源连接供电引脚,VSS 接地,VDD 接 3.3 伏,之间可连接滤波电容保证供电稳定。VBAT 可接备用电池,为 RTC 和备份寄存器服务,若不需要此功能可悬空或接 3.3 伏。( r2 ^; S% m# B) J7 R
晶振部分:主时钟晶振一般为 8 兆赫兹,经过内部锁相环倍频得到 72 兆赫兹主频。晶振引脚通过网络标号连接到 STM32 的特定引脚,并接两个 20pF 的电容作为起振电容,另一端接地。若需要 RTC 功能,还需接一个 32.768 千赫兹的晶振。5 P$ u& Q8 X" [: M4 x7 N* P
2.复位电路:由 10k 电阻和 0.1 微法电容组成,为单片机提供复位信号。上电瞬间电容短路,NIST 引脚产生低电平,电容充满电后相当于断路,NIST 被上拉为高电平,完成上电复位。电容左边并联按键可实现手动复位。
. c6 n9 [8 P: J) r! ^. {启动配置:使用跳线帽或拨码开关配置 BOOT 引脚的高低电平,选择启动模式。
# l  h1 S3 g/ ]* R3 y下载端口:使用 ST-Link 下载程序时,需引出 SWDIO 和 SWCLK 引脚,以及 3.3 伏和接地引脚。
4 S' ^& a& U1 Y+ L  Z! l4 _ 微信图片_2025-10-13_103300_065.png
' ?  f" W( C$ e) K3 c# b十二、总结
本文详细介绍了 STM32 的基本情况、ARM 内核参数、外设命名规则、系统结构、引脚定义、启动配置和最小系统电路等内容。STM32 功能强大、性能优异、片上资源丰富,是一款经典的嵌入式微控制器。要深入了解 STM32,可查看官方提供的文档资料。
' Y( R3 j- u# n$ }1 K
赞 收藏 评论0 发布时间:2025-10-13 10:35

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版