首页 > 其他分享 >01. 初识STM32

01. 初识STM32

时间:2023-07-15 18:34:00浏览次数:30  
标签:01 引脚 STM32 初识 Cortex GPIO MCU DP

一、什么是单片机

  单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。

二、什么是STM32单片机

  STM32,从字面上来理解,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示 32 位,合起来理解,STM32 就是指 ST 公司开发的 32 位微控制器。

  STM32 是意法半导体公司以 ARM 内核为核心加上众多片上外设设计而成的 32 位单片机。

  ARM 是英国的芯片设计公司,它主要提供 IP(Intellectual Property core 知识产权的核心)核,就是 CPU 的内核结构,只包括最核心的部分,并不是完整的处理器。ARM 把这个核卖给各大半导体公司,如 Philips,三星,ATMEL,甚至 Intel 等许多公司。

  STM32 芯片正面是丝印,ARM 应该是表示该芯片使用的是 ARM 的内核,STM32F103ZET6 是芯片型号,后面的字应该是跟生产批次相关,最下面的是 ST 的 LOGO。芯片四周是引脚,左下角的小圆点表示 1 脚,然后从 1 脚起按照逆时针的顺序排列(所有芯片的引脚顺序都是逆时针排列的)。开发板中把芯片的引脚引出来,连接到其他各种芯片上(比如传感器),然后在 STM32 上编程(实际就是通过程序控制这些引脚输出高电平或者低电平)来控制其他芯片工作。

img

img

三、STM32分类

  STM32 目前总共有 5 大类,18 个系列:

大类 系列 内核 特性
主流级 MCU GO Cortex M0+ 全新入门级 MCU
G4 Cortex M4 模数混合型 MCU
F0 Cortex M0 入门级 MCU
F1 Cortex M3 基础型 MCU
F3 Cortex M4 混合信号 MCU
高性能 MCU F2 Cortex M4 高性能 MCU
F4 Cortex M4 高性能 MCU
F7 Cortex M7 高性能 MCU
H7 Cortex M7 高性能 MCU,部分型号有双核(M7+M4)
超低功耗 MCU L0 Cortex M0+ 超低功耗 MCU
L1 Cortex M3 超低功耗 MCU
L4 Cortex M4 超低功耗 MCU
L4+ Cortex M4 超低功耗高性能 MCU
L5 Cortex M33 超低功耗高性能安全 MCU
U5 Cortex M33 超低功耗高性能大容量安全 MCU
无线 MCU WB Cortex M4 双核无线 MCU
Cortex M0+
WL Cortex M4 远程无线 MCU
微处理器 MPU MP1 Cortex M7 双核超高性能 MPU
Cortex M4

  可以看到,STM32 主要分两大块,MCU 和 MPU,MCU 就是我们常见的 STM32 微控制器,不能跑 Linux,而 MPU 则是 ST 在 19 年才推出的微处理器,可以跑 Linux。STM32 MCU 提供了包括:基础入门、混合信号、高性能、超低功耗和无线等 5 方面应用的产品型号,我们可以根据自己的实际需要选择合适的 STM32 来设计。

四、STM32的命名规则

img

  STM32F103ZET6 命名解读:

参数 含义
名称 STM32F103ZET6
家族 STM32,表示 32bit 的 MCU
产品类型 F 表示基础型
具体特性 基础型
引脚数目 Z 表示 144pin,其他常用的为 C 表示 48,R 表示 64,V 表示 100,B 表示 208,N 表示 216
FLASH大小 E 表示 512KB,其他常用的为 8 表示 64,C 表示 256,I 表示2048
封装 T 表示 QFP 封装,这个是最常用的封装
温度 6 表示温度等级为 A:-40~85°

五、STM32选型

  由高到低原则:在不能评估项目所需性能的时候,可以考虑先选择高性能的 STM32 型号进行开发,比如选择 F4/F7/H7 等,在高性能 STM32 上面完成关键性能(即最需要性能的代码)开发验证,如果满足使用要求,则可以降档,如从 H7→F7→F4→F1,如不满足要求,则可以升档,如从 F4→F7→H7,通过此方法找到最佳性价比的 STM32 系列。

  由大到小原则:在不能评估项目所需 FLASH 大小、SRAM 大小、GPIO 数量、定时器等资源需求的时候,可以考虑先选择容量较大的型号进行开发,比如选择 512K /甚至 1M FLASH 的型号进行开发,等到开发完成大部分功能之后,就对项目所需资源有了定论,从而可以根据实际情况进行降档选择(当然极少数情况可能还需要升档),通过此方法,找到最合适的 STM32 型号。

六、最小系统

  最小系统就是保证 MCU 正常运行的最低要求,一般是指 MCU 的电源、复位、晶振、BOOT 等部分;

  STM32 为最小系统预留的引脚接口:

类型 引脚名称 说明
电源 VDD/VSS 电源正(VDD)/负(VSS)引脚,给 STM32 供电
VDDA/VSSA 模拟部分电源正/负引脚,给 STM32 内部模拟部分供电
VREF+/VREF- 参考电压正/负引脚,给 STM32 内部 ADC/DAC 提供参考电压
100 脚及以上的 STM32F103 型号才有这两个脚
VBAT RTC 后备区域供电引脚,给 RTC 和后备区域供电。
一般 VBAT 接电池,用于断电维持 RTC 工作,如不需要,直接将 VBAT 接 VDD 即可
复位 NRST 复位引脚,用于复位 STM32,低电平复位
启动 BOOT0/BOOT1 启动选择引脚,一般这两个脚各接一个下拉电阻即可
其他启动配置说明详见后续分析
晶振 OSC_IN / OSC_OUT 外部 HSE 晶振引脚,用于给 STM32 提供高精度系统时钟
如果使用内部 HSI 能满足使用需求,这两个脚可以不接晶振
OSC32_IN / OSC32_OUT 外部 LSE 晶振引脚,用于给 STM32 内部 RTC 提供时钟
如果使用内部 LSI 能满足使用需求,这两个脚可以不接晶振
调试 SWCLK/SWDIO SWD 调试引脚,用于调试 STM32 程序,同时 STM32 还支持 JTAG 调试
推荐使用 SWD 调试!因为 SWD 省 IO!

6.1、电源模块

img

6.2、复位电路

img

  STM32 复位引脚 NRST 保持 低电平 状态时间 1~4.5ms 即可复位。

6.3、BOOT启动电路

img

  通过 BOOT0 和 BOOT1 引脚设置启动模式

启动模式选择引脚 启动模式 说明
BOOT1 BOOT2
X 0 主闪存存储器 主闪存存储器被选为启动区域
0 1 系统存储器 系统存储器被选为启动区域
1 1 内置SRAM 内置SRAM被选为启动区域

6.4、晶振电路

img

6.5、USB转串口模块

img

6.6、调试电路

img

SWJ-DP端口引脚名称 JTAG调试接口 SW调试接口 引脚分配
类型 描述 类型 调试功能
JTMS/SWDIO 输入 JTAG 模式选择 输入/输出 串行数据输入/输出 PA13
JTCK/SWCLK 输入 JTAG 时钟 输入 串行时钟 PA14
JTDI 输入 JTAG 数据输入 PA15
JTDO/TRACESWO 输出 JTAG 数据输出 跟踪时为 TRACESWO 信号 PB3
JNTRST 输入 JTAG 模块复位 PB4

  SWJ-DP 引脚分配:

SWJ-CFG[2:0] 配置为调试专用的引脚 SWJ 接口的 I/0 口分配
PA13/
JTMS/
SWDIO
PA14/
JTCK/
SWCLK
PA15/
JTDI
PB3/
JTDO
PB4/
JNTRST
000 所有的 SWJ 引脚
(JTAG-DP + WD-DP)
复位状态
专用 专用 专用 专用 专用
001 所有的 SWJ 引脚
(JTAG-DP + WD-DP)
除了 JNTRST 引脚
专用 专用 专用 专用 释放
001 JTAG-DP 接口禁止
SWD-DP 接口允许
专用 专用 释放
010 JTAG-DP 接口和
SWD-DP 接口都禁止
释放
其它 禁止

七、IO分配

  IO 分配就是在完成最小系统设计以后,根据项目需要对 MCU 的 IO 口进行分配,连接不同的器件,从而实现整体功能。比如:GPIO、IIC、SPI、SDIO、FSMC、USB、中断等。遵循:先分配特定外设 IO,再分配通用 IO,最后微调的原则;

分配 外设 说明
特定外设 IIC IIC 一般用到 2 根线:IIC_SCL 和 IIC_SDA(ST 叫I2C)
数据手册有 I2C_SCL、I2C_SDA 复用功能的 GPIO 都可选用
SPI SPI 用到 4 根线:SPI_CS/MOSI/MISO/SCK
一般 SPI_CS 我们使用通用 GPIO 即可,方便挂多个 SPI 器件
数据手册有 SPI_MOSI/MISO/SCK 复用功能的 GPIO 都可选用
TIM 根据需要可选:TIM_CH1/2/3/4/ETR/1N/2N/3N/BKIN 等
数据手册有 TIM_CH1/2/3/4/ETR/1N/2N/3N/BKIN 复用功能的 GPIO 都可选用
USART
UART
USART 有 USART_TX/RX/CTS/RTS/CK 信号
UART 仅有 UART_TX/RX 两个信号
一般用到 2 根线:U(S)ART_TX 和 U(S)ART_RX
数据手册有 U(S)ART_TX/RX 复用功能的 GPIO 都可选用
USB USB 用到 2 根线:USB_DP 和 USB_DM
数据手册有 USB_DP、USB_DM 复用功能的 GPIO 都可选用
CAN CAN 用到 2 根线:CAN_RX 和 CAN_TX
数据手册有 CAN_RX、CAN_TX 复用功能的 GPIO 都可选用
ADC ADC 根据需要可选:ADC_IN0 ~ADC_IN15
数据手册有 ADC_IN0 ~ADC_IN15 复用功能的 GPIO 都可选用
DAC DAC 根据需要可选:DAC_OUT1 / DAC_OUT2
DAC 固定为:DAC_OUT1 使用 PA4、DAC_OUT2 使用 PA5
SDIO SDIO 一般用到 6 根线:SDIO_D0/1/2/3/SCK/CMD
数据手册有 SDIO_D0/1/2/3/SCK/CMD 复用功能的 GPIO 都可选用
FSMC 根据需要可选:FSMC_D0~15/A0~25/ NBL0~1/NE1~4/NCE2~3/NOE/NWE/NWAIT/CLK 等
数据手册有 FSMC_D0~15/A0~25/ NBL0~1/NE1~4/NCE2~3/NOE/NWE/NWAIT/CLK 复用功能的 GPIO 都可选用
通用 GPIO 在完成特定外设的 IO 分配以后,就可以进行 GPIO 分配了
比如将按键、LED、蜂鸣器等仅需要高低电平读取/输出的外设连接到空闲的普通 GPIO 即可
微调 IO 微调主要包括两部分:
1、当 IO 不够用的时候,通用 GPIO 和特定外设可能要共用 IO 口
2、为了方便布线,可能要调整某些 IO 口的位置

八、串口下载程序

  通过 BOOT0 和 BOOT1 引脚设置启动模式

启动模式选择引脚 启动模式 说明
BOOT1 BOOT2
X 0 主闪存存储器 主闪存存储器被选为启动区域
0 1 系统存储器 系统存储器被选为启动区域
1 1 内置 SRAM 内置 SRAM 被选为启动区域

img

标签:01,引脚,STM32,初识,Cortex,GPIO,MCU,DP
From: https://www.cnblogs.com/kurome/p/17556665.html

相关文章

  • 初学C语言day01——第一个C语言程序
    第一个C语言程序#include<stdio.h>//包含头文件#预处理指令(在预处理阶段进行处理)//argc表示命令行参数的个数argv一个字符串数组命令行参数intmain(intargc,char*argv[]){printf("Helloworld!\n");//标准输出函数C语言程序本身是没有输入输出......
  • python STM32
    如何在Python中使用STM32前言欢迎来到PythonSTM32入门教程!在本篇文章中,我将向你介绍如何在Python中使用STM32。STM32是一种基于ARMCortex-M内核的32位微控制器,具有广泛的应用领域,包括物联网、嵌入式系统和工业自动化等。通过本教程,你将学会如何在Python中编写STM32程序,并将其烧......
  • MURF20100CTR-ASEMI快恢复对管MURF20100CTR
    编辑:llMURF20100CTR-ASEMI快恢复对管MURF20100CTR型号:MUR20100CTR品牌:ASEMI芯片个数:2封装:TO-220F恢复时间:50ns工作温度:-50°C~150°C浪涌电流:200A正向电流:20A反向耐压:1000V正向压降:1.9V引脚数量:3漏电流:>10uaMURF20100CTR特性:ASEMI品牌MURF20100CTR是采用工艺芯片,该......
  • 01_方法的重写
    一、方法的应用体现方法的应用体现有2种重载在同一个类中方法名相同参数列表不相同和方法返回值无关重写在父子类中方法名相同参数列表相同方法返回值相同二、概述方法的重写就是子类对父类的方法逻辑进行重新编写,当然,这个方法得是子类可访问的实例方法三、......
  • 洛谷 P4931 [MtOI2018] 情侣?给我烧了!(加强版)
    洛谷传送门设\(f_i\)为\(i\)对情侣完全错位的方案数,那么答案为:\[\binom{n}{k}\frac{n!}{(n-k)!}2^kf_{n-k}\]分别代表选择\(k\)对情侣,选择它们的位置,情侣可以换位。\(f_i\)有递推公式:\[f_i=4i(i-1)(f_{i-1}+2(i-1)f_{i-2})\]考虑选出两个人,另外......
  • 01_抽象类
    一、为什么要用抽象类当父类定义一个功能时,每个子类对该功能的具体实现逻辑都不一样,那么父类定义该功能时就可以定义成抽象的方法,这个类就必须是抽象类了抽象类也是类,也能定义类中的5大成分(成员变量、成员方法、构造方法、代码块、内部类),特别需要注意的是,有抽象方法的类,必须是......
  • 【转】Docker入门笔记01:Docker容器技术的发展历程
    原文:https://zhuanlan.zhihu.com/p/304623118最近因为工作需要,要学习一些基本的Docker知识,所以整理了一些docker的入门知识,感兴趣的小白可以看看,一起学习进步。要学习一个新的东西,我的习惯一般是先了解它是什么,它是怎么来的,发展历史是怎样的,用来解决什么问题,有什么优缺点。所以......
  • VS2015 C++代码内存泄漏
    在可能泄漏的文件头部加入下面几行(保证malloc和new的泄漏都可以检测到)#define_CRTDBG_MAP_ALLOC#include<crtdbg.h>#ifdef_DEBUG//重载new运算符#definenewnew(_NORMAL_BLOCK,__FILE__,__LINE__)#endif程序运行起始位置:_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_C......
  • WPF - 001 数据绑定
    数据绑定WPF数据绑定四大要素:绑定源、绑定源属性、绑定目标、绑定目标属性。绑定源可以是:CLR对象ADOXMLDependencyObject绑定目标可以是:DependencyObject能够绑定的属性都是依赖属性,即DependencyProperty,所有DependencyProperty的值都是Object->Denpende......
  • MURF20100CT-ASEMI快恢复对管MURF20100CT
    编辑:llMURF20100CT-ASEMI快恢复对管MURF20100CT型号:MURF20100CT品牌:ASEMI封装:TO-220F恢复时间:50ns正向电流:20A反向耐压:1000V芯片个数:2引脚数量:3类型:快恢复二极管、快恢复对管特性:对管、插件快恢复二极管浪涌电流:200A正向压降:1.9V封装尺寸:如图工作温度:-50°C~150°C......