STM32单片机简介

article/2025/7/27 18:44:33

1.基本情况

STM32单片机正如其名是32位微控制器,相较于51单片机的8位微控制器,性能会更好,但学习难度也会提高。

在stm32单片机中内核时核心部分,是ARM公司设计的,其在stm32单片机中占据极为重要的地位。(程序指令的执行,如+-*/运算都是在内核中完成的)相当于整个芯片的CUP。就像我们现在的电脑厂商一样,可以拿着intel或AMD的CPU,自己完善外围电路,这样就可以退出自己品牌的电脑。STM32单片机也是类似,以ARM为内核,自己完善外围电路做出的芯片都叫做基于ARM内核的芯片。

STM32单片机的常用领域:

智能车:STM32单片机做寻迹小车,读取光电传感器或者摄像头的数据,然后驱动电机前进和转弯。

无人机:STM32单片机读取陀螺仪加速计的姿态数据,然后根据控制算法去控制电机的速度,从而保证飞机稳定飞行。

机器人:STM32单片机驱动舵机,去控制机器人的关节,然后让机器人运动。

无线通信:STM32单片机连接上一连2.4G无线模块或蓝牙、WIFI模块,这样STM32的单片机就具备无线通信的能力。物联网也可以借助这些无线模块来通信(蓝牙、WIFI、ZigBee等)。再通过STM32单片机驱动继电器来控制220V电路的通断。

工业控制:PLC。

娱乐电子产品:爱心流水灯等。

家族序列图

STM32单片机分为四个系列:高性能系列、主流系列、超低功耗系列、无线系列。

下图中有相关介绍:

目前最强的STM32单片机是STM32N6系列,STM32N6 基于运行频率达 800MHz 的 Arm Cortex-M55 处理器,是单核架构。

目前博主只学习了主流系列,跟大家分享的也只跟主流系列有关。如果你学习了主流系列后,觉得性能不够,可以继续学习高性能系列;如果你对功耗特别敏感,推荐专攻超低功耗系列;如果想做无线通信电子产品,可以了解无线系列。因为它们都是一个家族的,所以换一个系列再学习的话也会比换别的新派你轻松很多。

2、ARM

ARM既指ARM公司,也指ARM处理器的内核。

ARM 公司本身不直接从事芯片生产,而是通过授权其设计的芯片架构给全球各地的半导体公司,由这些公司根据各自的应用领域进行开发和生产,ARM 则收取前期许可费和根据硅片生产量支付的版税。这个也叫做知识产权提供商,简单解释就是负责设计提供但不生产实物。

下面展示一幅图,其中由介绍ARM内核的相关信息:

右侧蓝色所表示的是经典的ARM处理器。

由图可知,内核有三个系列:A、R、M,正如ARM公司的组成字母。

R、M系列用于嵌入式领域,A系列适用于高端应用型领域如手机领域(苹果、高通、联发科)。

R系列实时性(硬盘处理器),M系列(单片机STM32领域),A系列(性能最高、发展最快的系列)。

ARM公司的内核非常多,远不止图上所示。想要更多了解可以另查资料,这里我就不多讲了。

下面展示一款主流系列的芯片:

RAM:运行内存,实际的存储介质是SRAM。

ROM:程序存储器,实际的存储介质是Flash闪存。

如图供电电压为2.0~3.3V,因此,如果供电电压为5V时,需要加一个稳压芯片,把电压讲到3.3V,再给STM32单片机供电。51单片机的供电电压是5V。可不要弄混了。

封装如图,有48个引脚。

这款芯片的片上资源下图展示:

片商资源又叫外设(Peripheral)。

主要学习内容。通过程序配置外设,来实现我们想要的功能。

表中,前两个深颜色的,是位于Cortes-M3内核里面的外设,剩下的都是内核外的外设。

下面介绍这些外设相关的作用:

NVIC:内核里面用于管理中断的设备,如配置中断优先级这些东西。

SysTick:内核里的一个定时器,用来给实际操作系统提供定时服务的。

STM32单片机可以加入操作系统:FreeRTOS,UCOS等。

如果用这些操作系统,就需要SysTick提供定时器来进行任务切换的功能。

RCC:可对系统的时钟进行配置,还有就是使能各模块的时钟。在STM32单片机中,其他的这些外设在上电的情况下默认是没有时钟的。不给时钟的情况下,操作外设是无效的,外设也不会工作,这样的目的是降低功耗。所以操作外设之前,必须要先使能它的时钟,这就需要我们用RCC来完成时钟的使能。

GPIO:通用的IO口,我们可以用GPIO来点灯,读取按键等。这也是一个单片机最基本的功能。

AFIO:复用IO口,可以完成服用功能端口的重要定义,还有中断端口的配置。

EXIT:外部中断,配置好外部中断后,当引脚有电平变化时,就可以触发中断,让CPU来处理任务。

TIM:整个STM32单片机最常用,功能最多的外设,分为高级、通用、基本定时器三种模型。

其中高级定时器最复杂,通用定时器最常用。

它不仅可以完成定时中断的任务,还可以完成测频率,生成PWM波形。配置成专用的编码器接口等功能。PWM波形就是我们电机驱动、舵机驱动最基本的要求了。

ADC:这个STM32单片机内置了12位的AD转换器,可以直接读取IO口的模拟电压值,无需外部连接AD芯片,使用非常方便。

DMA:这个可以帮助CPU完成搬运大量数据这样繁杂的任务。

USART:我们平常用的UART是异步串口的意思,这里的USART两个都支持。分为异步、同步,实际用异步多。

I2C、SPI:非常常用的两种通信协议。STM32单片机也内置了它们的控制器,可以用硬件来输出时序波形,使用起来更高效,当然用通用IO口来模拟时序波形也是没有问题的。

CAN、USB:也是通信协议,CAN运用于汽车领域,利用这个STM32USB的外设,可以做一个模拟鼠标,模拟U盘等设备。

RTC:在STM32单片机内部完成年月日,时分秒的计时功能。而且可以接外部备用电池,基石掉电也能正常运行。

CRC:一种数据的校验方式,用于判断数据的正确性。有这个外设的支持,进行CRC校验就会更加方便一些。

PWR:可以让芯片进入睡眠模式等状态,来达到省电的目的。

BKP:这是一段存储器,当系统掉电时,仍可由备用电池保持数据,这个根据需要,可以完成一些特殊功能。

IWDG、WWDG:是独立看门狗和窗口看门狗。当单片机因为电磁干扰死机或者程序设计不合理出现死循环时,看门狗可及时复位芯片,保证系统的稳定。

DAC:它可以在IO口直接输出模拟电压,是ADC模数转换的逆过程。

SDIO:可以用来读取SD卡。

FSMC:可以用于扩展内存,或者配置成其他总线协议,用于某些硬件的操作。

USB OTG:用OTG功能,可以让STM32单片机作为USB主机读取其他USB设备。

那以上就是STM32F1系列所有外设的大致介绍了。

这是STM32F1系列的所有外设,并不是所有型号都拥有全部外设,比如我们这款C8T6芯片就没有后面四个外设。

那具体有哪些外设?每个外设设有几个呢?

我们还要看一下对应的数据手册。

下面我放一张英文版的C8T6芯片的数据手册,看一下它的外设资源表:

看到这幅图的STM32F103Cx这一列,可以看到这个C8T6是64K闪存的,20K的SRAM,有3个通用定时器,1个高级定时器,没有基本定时器。2个SPI,2个I^2C,3个USART,1个USB,1个CAN总线,37个IO口,2个10通道的12位ADC。在这个表里没有出现的外设,你就要确认一下它是不是存在,要是操作了不存在的外设,那它是不会工作的。

3、芯片命名规则

看一下这个型号的每一位字母和数字代表的意义。

一般来说,引脚越多,外设越多。

4、系统结构

分为四部分,大致分布如图:

加载数据(常量、调试数据等)。

ICode指令总线,Dcode数据总线,System系统总线。前两个用来加载程序指令的主要用来连接Flash闪存。Flash闪存存储的就是我们编写的程序。

SRAM:用于存储程序运行的变量数据。

AHB、SPIO:用于挂载主要的外设,挂载的一般是最基本或性能比较高的外设(复位、时钟控制这些最基本的电路)。

5、引脚定义(重点)

这部分内容学习大概知道这个芯片是怎么使用的。

C8T6这个芯片的引脚序号和引脚名称的示意图:

左上角小黑点,代表它左边的引脚是1号引脚。逆时针依次排列,知道48号引脚。

下面给大家展示这款芯片相关的引脚有哪些:

红色代表电源相关,蓝色代表最小系统相关,绿色代表IO口功能口。

类型:

S:电源;I:输入;O:输出;IO:输入输出。

IO口电平代表IO口所能容忍的电压。有FT的,代表它能容忍5V的电压。没有FT的,容忍3.3V电压。

如果没有FT的需要接5V的电平,就需要加装电平转换电路了。

主功能就是上电后默认的功能,一般和引脚名称相同。如果不同的话,引脚的实际功能是主功能而不是引脚名称的功能。

默认复用功能就是IO口同时连接的外设功能引脚。这个配置IO口的时候可以选择是通用IO口还是复用功能。

重定义功能:这个的作用是,如果有两个功能同时复用在了一个IO口上,而你却是需要用到这两个功能,那你可以把其中一个复用功能重映射到其他端口上。当然前提是,这个重定义功能的表里有对应的端口。

VBAT:备用电池供电的引脚。可接3V电池。当系统电源断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源。

2号引脚是IO口或者侵入检者或者RTC。

IO口可以根据程序输出或读取高低电平是最基本也是最常用的功能了。

侵入检测可以用来做安全保障的功能。(你的产品安全性比较高,可以在外壳加一些防拆的触点。然后接上电路到这个引脚上。若有强行拆开设备,那触点断开,这个引脚的电平变化就会触发STM32的侵入信号,然后就会清理数据来保证安全。

RTC的引脚可以用来输出RTC校准时钟,RTC闹钟脉冲或者秒脉冲。

3、4号引脚是IO口或者接32、786Hz的RTC晶振。

5、6号引脚接系统的主晶振,一般是8MHz。然后芯片内部有锁相环电路,可以对这个8MHz的频率进行信频。最终产生72MHz的频率。作为系统的主时钟,7号NRST是系统复位引脚,N代表它是低电平复位的。

8、9号引脚是内部模拟部分的电源,如ADC、RC振荡器等。VSS是负极,接GND、VDD是正极,接3.3V.

10~19号引脚都是IO口,其中PAO还兼具了WKUP的功能。这个可以用于唤醒处于待机模式的STM32。

20号引脚是IO口或者BOOT1引脚。BOOT引脚是用来配置启动模式的,另外这个IO口引脚名称没加粗。这是表示我推荐使用这些加粗的IO口,没有加粗的IO口,可能需要进行配置,或者兼备其他功能,使用时需要留意一下。

21、22号也都是IO口。

23、24号的VSS_1(正极)和VDD_1(负极)是系统的主电源口。

另外,下面还有VSS_2、VDD_2、VSS_3、VDD_3。都是系统的主电源口。

这里STM32内部采用了分区供电的方式。所以供电口会比较多。在使用时,把VSS都接GND、VDD都接3.3V即可。

25~33号都是IO口。

34、27~40号。这些事IO口或者调试端口。

上面默认的主功能是调试端口。调试端口就是用来调试程序和下载程序的。

这个STM32需要2根线,分别是SWDIO和SWCLK。JTAG需要5根,分别是JTMS、JTCK、JTDI、JTDO、NJTRST。

我上面所讲的都是使用STLINK来下载调试程序。STLINK用的是SWD的方式,所以只需要占用PAB和PA14这两个IO口,在使用SWD的调试方式时,剩下的PA15、PB3、PB4可以切换为普通的IO口来使用,但要在程序中进行配置,不配置的华默认是不会用做IO口的。

41~43、45~46都是IO口。

剩下的44号引脚跟刚才介绍的BOOT1一样,也是用来做启动配置的。

这个表在数据手册中也有,这些都是我在数据手册中提取出来的,在后面会给出地址,方便大家查看。STM32F103C8T6 数据表, PDF - 全部数据表https://www.alldatasheet.com/view.jsp?Searchword=STM32F103C8T6

6、启动配置

如图是我们刚才看到BOOT0和BOOT1两根引脚的功能。这个启动配置的作用就是指定程序开始运行的位置。一般情况下,程序都是在Flash程序存储器开始执行。但是在某些情况下,我们也可以让程序在别的地方开始执行。用以方式完成特殊的功能。

BOOT0 按0->接地                BOOT1 x 不论结什么,启动模式都是主闪存存储器的模式最常用

1 接1就是接到3.3V电源正的意思 0 

这个不是很好理解,其实这个模式就是用来做串口下载的。系统存储器村的就是STM32中的一段BOOtLoader程序。

作用是接受串口的数据,然后刷新到主闪存中,这样就可以使用串口下载程序了。

一般我们需要串口下载程序的时候会配置到这个模式上。

那我们什么时候需要用到串口下载呢?可以看回到引脚定义表:

这5个是调试窗口,它们既可以用来下载程序,也可以作为普通IO口使用。

如果我们在程序中把这5个端口全部配置成了IO口,那就完了。因为这个芯片没有调试端口,也就下载不了程序了,所以在你配置这几个端口的时候要小心点,不要把它们全部都变成普通IO口了。

那如果全部变成IO口了,下载不进去程序了,这就需要用到串口的方式下载程序了。

如果想使用串口下载,就需要配置T1为0,T0为1.没有STLINK、JLIK,可以用串口下载,多一种方式。

这个模式主要用来进行程序调试的,现阶段用的比较少。

另外解释一下上面那幅图的最后一句话:BOOT引脚的值是在上电复位后的一瞬间有效的,之后就随便了。

想让STM32正常工作,那么首先就需要把电源部分和最小系统部分的电源连接好,也就是引脚定义表中标红蓝色的部分。

7、最小系统电路

STM32 最小系统电路主要由电源电路、时钟源电路、BOOT 启动电路、调试接口电路和复位电路这五部分组成,以下是各部分的详细介绍:
电源电路
作用:为 STM32 芯片提供稳定的电源,确保芯片能够正常工作。STM32 芯片通常需要 3.3V 的电源电压,电源电路负责将外部输入的电源转换为芯片所需的稳定电压,并进行滤波等处理,以减少电源噪声对芯片的影响。
设计要点:通常采用线性稳压器或开关稳压器来实现电源转换。如使用 AMS1117-3.3V 等线性稳压芯片,将输入的 5V 或其他电压转换为 3.3V。同时,需要在电源输入端和芯片电源引脚处连接多个滤波电容,如 10uF 的钽电容和 100nF 的陶瓷电容,以滤除不同频率的噪声信号,靠近芯片引脚放置电容,以提高滤波效果。
时钟源电路
作用:为 STM32 芯片提供时钟信号,时钟信号是芯片内部各个部件同步工作的基准,决定了芯片的运行速度和时序节奏。
设计要点:可以选择内部时钟源或外部时钟源。内部时钟源一般是 RC 振荡器,精度较低但成本低、功耗小;外部时钟源通常采用石英晶振,精度高、稳定性好。如常用的 8MHz 外部晶振,为系统提供稳定的时钟基准。在使用外部晶振时,需要在晶振两端连接两个起振电容,电容值一般在 10pF-40pF 之间,还可在晶振输入输出引脚之间加一个 1M 的电阻,产生负反馈,保证放大器工作在高增益的线性区,同时起到限流作用。
BOOT 启动电路
作用:用于选择 STM32 芯片的启动模式,不同的启动模式决定了芯片从何处读取启动代码和数据。
设计要点:STM32 芯片有三种启动模式,由 BOOT0 和 BOOT1 引脚在复位时的状态决定。一般情况下,如果使用 JTAG 或 SWD 调试下载程序,会将程序下载到闪存里,可直接将 BOOT0 引脚通过一个 10K 电阻下拉接地,BOOT1 引脚置为低电平或悬空。
调试接口电路
作用:用于将计算机中的程序代码下载到 STM32 芯片中,并对芯片进行调试和仿真,方便开发人员对程序进行调试和优化。
设计要点:常用的调试下载方式有 JTAG 和 SWD 两种。现在一般采用 SWD 调试接口,只需要将 SWCLK(时钟信号)、SWDIO(数据输入输出信号)、GND(接地)、3.3V(电源)引脚引出即可与调试器连接。不需要添加外部上拉或下拉电阻,因为 STM32 内部已经集成了相应的电阻。
复位电路
作用:将 STM32 芯片的内部电路恢复到初始状态,确保芯片在启动或出现异常时能够正常初始化和运行。
设计要点:STM32 有三种复位方式,分别是系统复位、电源复位和后备域复位。常用的是电源复位方式,通过一个按键和一个电容组成的电路来实现。当按下按键时,将芯片的 RST 引脚拉低,产生外部复位信号,使芯片进入复位状态;当按键松开后,电容充电,RST 引脚电位逐渐升高,复位结束,芯片开始正常运行。一般选择 100nF 的电容,以保证 RST 引脚低电平持续的时间满足芯片复位的最小脉宽要求。

这就是STM32单片机的简单介绍,后续我也会继续分享有关STM32单片机的内容,希望大家多多支持。


http://www.hkcw.cn/article/SVCfMJFSZr.shtml

相关文章

安全帽目标检测

安全帽数据集 这里我们使用的安全帽数据集是HelmentDetection,这是一个公开数据集,里面包含5000张voc标注格式的图像,分为三个类别,分别是 0: head 1: helmet 2: person 安全帽数据集下载地址、 我们将数据集下载后&#xff0c…

气镇阀是什么?

01、阀门介绍: 油封机械真空泵的压缩室上开一小孔,并装上调节阀,当打开阀并调节入气量,转子转到某一位置,空气就通过此孔掺入压缩室以降低压缩比,从而使大部分蒸汽不致凝结而和掺入的气体一起被排除泵外起此…

1,QT的编译教程

目录 整体流程: 1,新建project文件 2,编写源代码 3,打开QT的命令行窗口 4,生成工程文件(QT_demo.pro) 5,生成Make file 6,编译工程 7,运行编译好的可执行文件 整体…

Linux操作系统 使用共享内存实现进程通信和同步

共享内存使用 //main.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <sys/shm.h> #include <string.h> int main() {int shmidshmget((key_t)1234,256,IPC_CREAT|0600);assert(shmid!-1);…

力扣HOT100之动态规划:322. 零钱兑换

这道题和上一道题279.完全平方数的套路是完全一样的&#xff0c;但是这道题不需要我们自己生成物品列表&#xff0c;函数的输入中已经给出了&#xff0c;但是这道题有一个坑&#xff0c;就是我们在初始化dp数组的时候&#xff0c;所有的位置不应该赋值为INT_MAX&#xff0c;因为…

工厂方法模式(Factory Method)深度解析:从原理到实战优化

作者简介 我是摘星&#xff0c;一名全栈开发者&#xff0c;专注 Java后端开发、AI工程化 与 云计算架构 领域&#xff0c;擅长Python技术栈。热衷于探索前沿技术&#xff0c;包括大模型应用、云原生解决方案及自动化工具开发。日常深耕技术实践&#xff0c;乐于分享实战经验与…

π0-FAST-针对VLA模型的高效动作token化技术-2025.1.16-开源

0. 前言 2025年2月4日&#xff0c;π0 和 π0-FAST 一并开源&#xff0c;这个系列许多研究者、企业人士认为落地潜力很大 项目页 论文页 GitHub页 之前已经做了 π0 论文的详解&#xff1a;π0-通用VLA模型-2024.11.13-开源 本文来详解一下 π0-FAST 1. π0-FAST&#xff1…

正点原子Z20 ZYNQ ​​​开发板​​发布!板载FMC LPC、LVDS LCD和WIFI蓝牙等接口,资料丰富!

正点原子Z20 ZYNQ ​​​开发板​​发布&#xff01;板载FMC LPC、LVDS LCD和WIFI&蓝牙等接口&#xff0c;资料丰富&#xff01; 正点原子新品Z20 ZYNQ开发板来啦&#xff01;核心板全工业级设计&#xff0c;主控芯片型号是XC7Z020CLG484-2I。开发板由核心板底板组成&…

SPL做量化----SRMI(动量修正指标)

MI 修正指标&#xff0c;用法参考 MI 动力指数用法。 例如计算浦发银行 2024 年的 SRMI 指标&#xff0c;N 取 9。 代码示例&#xff1a; A160000022024-01-0132024-12-314call("adjustprice.splx", "", call("loadkday.splx", A1, A2,A3) )5…

【油藏地球物理正演软件ColchisFM】如何在实际地震剖面基础上增删地质体开展正演

在实际地震正演过程中&#xff0c;很多油田客户都希望看到在实际地震剖面上如果增加/减少一个砂体&#xff0c;或者仅仅目的层储层变厚/变薄&#xff0c;物性变好/变差&#xff0c;含油性改变地震上会是什么样的响应&#xff0c;而不仅仅是理论的模型&#xff0c;这时常规的正演…

数据库中求最小函数依赖集-最后附解题过程

今天来攻克数据库设计里一个超重要的知识点 —— 最小函数依赖集。对于刚接触数据库的小白来说&#xff0c;这概念可能有点绕&#xff0c;但别担心&#xff0c;咱们一步步拆解&#xff0c;轻松搞定&#x1f4aa;&#xff01; &#xff08;最后fuyou&#xff09; 什么是最小函数…

奇异值分解(SVD):线性代数在AI大模型中的核心工具

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

通信算法之280:无人机侦测模块知识框架思维导图

1. 无人机侦测模块知识框架思维导图, 见文末章节。 2. OFDM参数估计,基于循环自相关特性。 3. 无人机其它参数估计

VScode ios 模拟器安装cocoapods

使用 Homebrew 安装&#xff08;推荐&#xff09; 如果你有 Homebrew&#xff0c;直接用它安装更稳定&#xff1a; brew install cocoapods

特伦斯 S75 电钢琴:重塑演奏美学的至臻之选

在电钢琴产业迈向技术与体验双升级的时代&#xff0c;特伦斯 S75 以颠覆性设计重新定义高端电钢琴的价值标杆。这款集工艺美学、演奏质感与智能科技于一体的乐器&#xff0c;不仅是音乐表达的工具&#xff0c;更是现代生活空间中流动的艺术符号。 一、极简美学与功能主义的完美…

转转的兴衰之路:二手电商的市场观察

在二手电商的江湖中&#xff0c;转转曾是一颗耀眼的明星。2015年&#xff0c;转转在58集团的孵化下应运而生&#xff0c;就像一个初出茅庐的侠客&#xff0c;带着一股闯劲踏入了闲置交易的江湖&#xff0c;最开始就以全品类二手交易为目标&#xff0c;想要在这个市场中打出一片…

5月课程精彩回顾 | 2025高通边缘智能创新应用大赛系列公开课

当边缘计算与人工智能的碰撞掀起技术革命浪潮&#xff0c;如何抢占创新先机&#xff1f;2025高通边缘智能创新应用大赛以行业顶尖资源赋能开发者&#xff0c;在初赛阶段重磅打造系列公开课。 5月13日至29日&#xff0c;大赛主办方高通技术公司携手承办方阿加犀&#xff0c;以及…

PostIn V1.1.2版本发布,新增接口评审功能,提升接口质量与合理性

PostIn是一款国产开源免费的接口关联工具&#xff0c;包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块&#xff0c;支持常见的HTTP协议、websocket协议。本周PostIn V1.1.0版本发布&#xff0c;新增接口评审、接口统计功能。 1、版本更新日志 新增 ➢ 接口评审&a…

AI互联网辅助工具

Date: 2025-05-30 14:35:24 author: lijianzhan 目前的人工智能在对话聊天&#xff0c;编程&#xff0c;音乐制作&#xff0c;办公&#xff0c;短视频制作&#xff0c;教育等领域有多种辅助工具&#xff0c;这些工具能够显著提升教学和学习效率&#xff0c;下面将介绍目前比较火…

PCIe— Legacy PCI

Legacy Model ​​ 该器件通过将其引脚置位到控制器来生成中断。 在较旧的系统中&#xff0c;这个控制 器通常是Intel 8259 PIC&#xff0c;有15个IRQ输入和一个INTR输出。 然后&#xff0c;PIC将断 言INTR以通知CPU一个或多个中断正在挂起。 一旦CPU检测到INTR的断言…