
1. 初识 STM32 STM32,从字面上来理解,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示 32 位,合起来理解,STM32 就是指 ST 公司开发的 32 位微控制器。在如今的 32 位控制器当中,STM32 可以说是最璀璨的新星,它受宠若娇,大受工程师和市场的青睐,无芯能出其右。* H3 i% D8 i! l x8 ?" s2 G& @ 1.1. STM32 诞生的背景 51 是嵌入式学**一款入门级的精典 MCU,因其结构简单,易于教学,且可以通过串口编程而不需要额外的仿真器,所以在教学时被大量采用,至今很多大学在嵌入式教学中用的还是 51。51 诞生于 70 年代,属于传统的 8 位单片机,如今,久经岁月的洗礼,既有其辉煌又有其不足。现在的市场产品竞争越来越激烈,对成本极其敏感,相应地对 MCU 的性能要求也更苛刻:更多功能,更低功耗,易用界面和多任务。面对这些要求,51 现有的资源就显得得抓襟见肘。所以无论是高校教学还是市场需求,都急需一款新的 MCU 来为这个领域注入新的活力。- p8 D, b7 h2 A' |$ f 基于这样的市场需求,ARM 公司推出了其全新的基于 ARMv7 架构的 32 位 Cortex-M3 微控制器内核。紧随其后,ST(意法半导体)公司就推出了基于 Cortex-M3 内核的 MCU—STM32。STM32凭借其产品线的多样化、极高的性价比、简单易用的库开发方式,迅速在众多 Cortex-M3 MCU 中脱颖而出,成为最闪亮的一颗新星。STM32 一上市就迅速占领了中低端 MCU 市场,受到了市场和工程师的无比青睐,颇有星火燎原之势。) e3 L0 U& }$ C, U7 ] : Y5 R: A5 e# k8 g% T! o 作为一名合格的嵌入式工程师,面对新出现的技术,我们不是充耳不闻,而是要尽快吻合市场的需要,跟上技术的潮流。如今 STM32 的出现就是一种趋势,一种潮流,我们要做的就是搭上这趟快车,让自己的技术更有竞争力。3 A7 p& Y q% d( }- u7 f 1.2. STM32 可以干什么, P- a& b; C6 g) ^ STM32 属于一个微控制器,自带了各种常用通信接口,比如 USART、I2C、SPI 等,可接非常多的传感器,可以控制很多的设备。现实生活中,我们接触到的很多电器产品都有 STM32 的身影,比如智能手环,微型四轴飞行器,平衡车、移动 POST 机,智能电饭锅,3D 打印机等等。) O9 x3 V5 I# C1 H4 @8 v( C- X, x- | ' h) }) _) E* e 2. STM32 怎么选型 2.1. STM32 的分类 STM32 有很多系列,可以满足市场的各种需求,从内核上分有 Cortex-M0、M3、M4 和 M7 这几种,每个内核又大概分为主流、高性能和低功耗。具体的见表格 STM8 和 STM32 分类 。 % v7 O. |4 D6 s; q4 ? T) @ 单纯从学习的角度出发,可以选择 F1 和 F4,F1 代表了基础型,基于 Cortex-M3 内核,主频为72MHZ,F4 代表了高性能,基于 Cortex-M4 内核,主频 180M。- K9 {5 y S7 D" x B- n 8 o; \1 Y. i: z5 X G4 p' b! C 之于 F1,F4(429 系列以上)除了内核不同和主频的提升外,升级的明显特色就是带了 LCD 控制器和摄像头接口,支持 SDRAM,这个区别在项目选型上会被优先考虑。但是从大学教学和用户初学来说,还是首选 F1 系列,目前在市场上资料最多,产品占有量最多的就是 F1 系列的 STM32。 , n. f1 g8 t; Y 2.2. STM32 命名方法# O" `. j: E0 }; c) N2 I# a . W2 S. I- o! B8 ?: b2 L ![]() 2.3. STM 32 的选型 了解了 STM32 的分类和命名方法之后,就可以根据项目的具体需求先大概选择哪类内核的 MCU,普通应用,不需要接大屏幕的一般选择 Cortex-M3 内核的 F1 系列,如果要追求高性能,需要大量的数据运算,且需要外接 RGB 大屏幕的则选择 Cortex-M4 内核的 F429 系列。 , ~3 n. g3 S! H" g$ @$ {' }: l: a 明确了大方向之后,接下来就是细分选型,先确定引脚,引脚多的功能就多,价格也贵,具体得根据实际项目中需要使用到什么功能,够用就好。确定好了引脚数目之后再选择 FLASH 大小,相同引脚数的 MCU 会有不同的 FLASH 大小可供选择,这个也是根据实际需要选择,程序大的就选择大点的 FLASH,要是产品一量产,这些省下来的都是钱啊。有些月出货量以 KK(百万数量级)为单位的产品,不仅是 MCU,连电阻电容能少用就少用,更甚者连 PCB 的过孔的多少都有讲究。项目中的元器件的选型的水深的很,很多学问。- J( a$ W3 | S$ L# ^ 3. STM32 是什么样的? 本文以 STM32F103VET6 为例来进行讲解$ x0 t8 o; W; k! U " t! r4 u3 [9 I5 B' s5 G 3.1. 实物与引脚图" c3 Z2 z+ n9 _# q# K: a6 \' s 实物图:* l6 u/ O: m" @- \* x" c5 u J ![]() , q% ~$ O4 G& [; [3 z 芯片正面是丝印,ARM 应该是表示该芯片使用的是 ARM 的内核,STM32F103VET6 是芯片型号,后面的字应该是跟生产批次相关,左下角的是 ST 的 LOGO。/ H+ z% ?; a. J' `5 w 芯片四周是引脚,左下角的小圆点表示 1 脚,然后从 1 脚起按照逆时针的顺序排列(所有芯片的引脚顺序都是逆时针排列的)。开发板中把芯片的引脚引出来,连接到各种传感器上,然后在STM32 上编程(实际就是通过程序控制这些引脚输出高电平或者低电平)来控制各种传感器工作,通过做实验的方式来学习 STM32 芯片的各个资源。 4 I, ~; ^) a+ R" k STM32F103VET6 引脚图: ![]() # @+ V2 a) h& b7 N 3.2. 芯片里面有什么?5 Q6 v7 t/ z4 }7 A" }6 L7 V2 o! t 我们看到的 STM32 芯片是已经封装好的成品,主要由内核和片上外设组成。若与电脑类比,内核与外设就如同电脑上的 CPU 与主板、内存、显卡、硬盘的关系。 # r7 h9 D( U0 I/ o3 U% w STM32F103 采用的是 Cortex-M3 内核,内核即 CPU,由 ARM 公司设计。ARM 公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商 (SOC) 如 ST、TI、Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、USART(串口)、I2C、SPI 等都叫做片上外设。5 d/ Y3 x2 s7 z0 P 芯片架构图: ![]() 1 V; ]4 N- Y# c d F. K 芯片(这里指内核,或者叫 CPU)和外设之间通过各种总线连接,其中驱动单元有 4 个,被动单元也有 4 个,具体见图 STM32F10xx 系统框图 。为了方便理解,可以把驱动单元理解成是CPU 部分,被动单元都理解成外设。 ———————————————— 版权声明:倾晨灬雨曦! N# i4 v" `7 B) ~5 P: v! Y8 X 1 k* u6 m6 C7 m+ ~! q: o9 J& h2 m |
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南
ST 微控制器电磁兼容性 (EMC) 设计指南
适用于STM32微控制器的ΣΔ数字接口入门