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

STM32简介(系统结构、引脚定义……)

[复制链接]
STMCU小助手 发布时间:2022-10-31 23:42
前言/ s4 U! Q: ?0 {2 w8 H) a/ C! U+ p
提示:这里可以添加本文要记录的大概内容:
7 g  v1 h% d/ |7 O6 P9 X介绍STM32的片上资源/外设、命名规则、系统结构、引脚定义、启动配置、最小系统电路等基础内容。
# b- l( {0 l& z- }  jSTM32:ST指ST公司、M指Microcontroller(微控制器)9 ?' ]' o, s: |8 a  o  N, G( E

. L  F4 j' o& u6 r/ s- ^& }一、STM32简介- H! r2 q1 g9 a% ]0 S, X  o, @
1)STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。
5 W9 l% c0 f+ M! h2)STM32常用在嵌入式领域。
( z8 G! @! `/ r(1)智能车:循迹小车,读取光电传感器或者摄像头的数据,驱动电机前进和转弯。! v+ h# K7 M# L8 X/ G' ?
(2)无人机:读取陀螺仪加速度计的姿态数据,根据控制算法控制电机速度,保证飞机稳定飞行。  Z5 X7 o! S- y! {  X
(3)机器人:驱动舵机,控制其关节,让机器人运动。
4 ^4 e- Q4 E0 s$ z, B(4)无线通信:给STM32连接一些2.4G无线模块或者蓝牙、WIFI模块,则具备无线通信能力。
9 N+ m' x& g: E( W: a(5)物联网:借助无线通信模块,再通过STM32驱动继电器来控制220v电路的通断。- }& |+ H! `4 m: K( O/ N6 t: q1 b
(6)工业控制:PLC主控。
. R) a5 F7 q7 \  Q  {, q(7)娱乐电子产品:流水灯之类……
/ e2 A8 f6 t6 i0 s9 D(8)……6 ~" Y8 _7 }; Z- R2 G+ Z! g
3)STM32功能强大、性能优异、片上资源丰富、功耗低、是一款经典的嵌入式微控制器。3 u! Y1 w- l) V% _
acda12e9816a45be99666cdd9567c812.png
% v* c5 G! J2 k4 {6 ?
2 f) _6 y$ h2 X; @2 ~此处用STM32F103C8T6。7 F$ d$ ^2 G+ V3 p
+ r  D3 A$ T4 I7 Z
二、STM32F103xxx
( B* Z1 N# a: T+ Y1.STM32F1系列片上资源/外设

! |; [) \3 l3 J: M. i: u, ~9 v  \- g
1d0d4dd49df14c64895575c10ad2ba3c.png * ^" l- u8 W; S0 @6 x

9 B! t  |! ]# X+ Y& h) x( B+ {: W( JNVIC:管理中断,如配置中断优先级等。) q2 f9 b" C) b' l$ p0 }* N5 [3 s" Q
SysTick:给操作系统提供定时服务。
% A4 b. S# b4 m; ~3 X5 w4 lRCC:使能外设时钟。
0 M' J$ I9 A5 c4 aAFIO:复用功能端口重定义,及中断端口配置。
% x/ i! r. B) {3 Y! ]) zCAN:多应用于汽车领域
7 X, l8 {4 l: j# ^7 I/ f  DRTC:在STM32内部完成年月日、时分秒的计时功能,可接外部备用电池,掉电也可使用。/ i3 o# j" p. c" z5 J
CRC:判断数据的正确性。
% \0 x5 y0 `5 z+ a* SPWR:电源可睡眠,使功耗降低。
+ e4 ~! ~1 C& ?& P; U' l" y2 bGPIO、EXTI、TIM、USART、I2C、SPI、ADC、DMA等都会在专题内逐一介绍。8 L" ^3 Y$ L* `- d4 ~3 k
* m3 w# r8 e$ b5 {
da68e632de754e6e9da4b91387cf8c67.png 9 ?, \6 l, g  `
( \: J* `" B" K. @5 \* A$ Y
如果操作片上不存在的外设资源,是无法工作的。
& T; X% I# d- S. F. P6 `+ I5 t$ P! q7 f$ z) A1 A+ M0 U
2.命名规则
- [4 o# g: e' R: ?示例:STM32 F103 C 8 T 6% S2 I# [7 I) R2 _! v4 h6 N& H
  ~2 G- ~1 T( x" t# U
ad52110a72c940429ba3a43b21796fbf.png
8 T- A1 }! y( h, P/ K7 X3 J6 |. `+ f: \) u4 G$ f0 Z- H
738c9acfbd174bbb98d1ede83a1d3c69.png 6 ^+ e1 _2 x0 w1 S
: a" T3 F' j! |: V, g: s- \
) C$ d4 |7 M0 B3 L4 @

) c# d. ?7 h% J$ {) e' t 9c137b55176c45b8b6b28182b3adc131.png
+ l+ Q$ ^9 B5 O0 w; h
3 Y+ D% u4 A; M- q  V4 M$ j, }
- s+ o. `7 A+ q& B2 k6 l8 E' d  s: R8 m
bb1332bacbda4ec7a554cd514ca3e4fe.png
0 W$ H1 U2 B' W' n8 }
8 J" x5 y/ M. a; u, y* F 8a060c073dfa42d2ac91e840ead3079e.png
) C8 Q8 M" K- ~% Y7 M; E$ i
$ {4 P* Q$ S6 L% c% L7 _可见STM32F103C8T6的具体参数为:增强型、48脚、64K字节的闪存存储器、LQFP封装、在-40~85℃间可正常工作。
# ]/ r. r2 t, |; W( q6 C$ `  j
# I3 q, b) C, G8 X3.系统结构
7 \  ^- c/ W0 f
  d5 g7 P% l* p8 f dc418e1038b147f78ea957f48661b4bc.png
0 r% Z0 X8 T8 {: T9 _/ t" k2 u2 d8 W9 n$ e
将此结构分成四个部分:  }) {2 S- W, M, o+ c5 k
**(1)**区域1位Cortex-M3内核,内核引出三条总线;分别是ICode指令总线、DCode数据总线、System系统总线。其中ICode和DCode主要用以连接Flash闪存,Flash中存储的内容为我们所编写的程序。ICode指令总线就是用以加载指令程序的,DCode数据总线是用来加载数据的,比如常量和调试参数等。System系统总线连接其他东西上,如SRAM(用于存储程序运行时的变量数据)、FSMC等。. l, j2 |8 E: I# e- \% [
**(2)**AHB(先进高性能总线)系统总线用于挂在主要外设,挂载的一般是最基本的或者是性能比较高的外设,如复位和时钟控制(RCC)、SDIO、两个桥接(APB1和APB2)等。APB(先进外设总线),用于连接一般的外设;因为AHB与APB在总线协议、总线速度、数据传送格式之间的差异,故中间需要加两个桥接,完后数据的转换和缓存。APB2(一般与AHB同频)的性能比APB1高一些,故连接一些外设中稍微重要的部分,如GPIO、外设的一号(USART1、TIM1、ADC1……);APB1则连接DAC、外设的其它号(USART2、TIM2……)。前文所述的就为区域3,主要介绍的就是外设种类和分布。/ N1 w! ?* a: X* V& b- i
**(3)**区域4为DMA(直接内存访问),可理解为内核CPU小秘书,若是有一些大量搬运数据的工作,为了减少CPU的工作量,给其它工作腾出时间,就将此工作交给DMA来做。/ g& Y  d+ K* n2 U6 d( t
DMA主要用来做如数据搬运一样简单且反复要做的事情,其通过DMA总线连接到总线矩阵上,可以拥有和CPU一样的控制权,用于访问其它外设;当需要DMA搬运数据时,外设就会通过请求线发送DMA请求,然后DMA就会获得总线控制权,访问并转运数据,整个过程不需要CPU的参与,省下CPU的时间来干其它事。
" j6 c3 D; W0 F5 h5 c. }; G9 W# d# a6 f$ F3 Q! @9 l
4.引脚定义
7 v* i9 B: Z9 F* s在拿到新的芯片时,需要着重的看一下其引脚定义,这样才能大致了解该如何使用该芯片。
8 C( M/ ^2 o) ~1 [+ V  i/ U8 d
0 C7 L! [4 f  v, `2 g* I6 l0 I- ^ ac239211ea7c45d39485fadba2dc0c11.png
7 p5 R4 q( a4 `1 E/ c+ H& ~! ?, Z, }
6b2bc3ac11684325aaae2de822f66ce0.png ! f4 `; ]6 K! ~8 e
3 o6 c& o: ~+ X) H' q
砖红色:与电源相关的引脚;有FT则表示其可忍受5V电压,如果没有FT,需要5V的电平就需要加装电平转换电路。
/ B! l! |1 b1 S' }4 l. S& S6 p蓝色:与最小系统相关的引脚! W$ E; y( n4 J* S7 g) g
绿色:I/O口、功能口相关引脚7 Q2 E/ C) o1 q$ D4 a7 `. U
主功能就是上电后默认的功能,一般和引脚名称相同;若不同,引脚的实际功能是主功能而不是引脚名称的功能。默认复用功能,是IO口同时连接的外设功能引脚,在配置IO时可以选择是通用IO口还是复用功能。重定义功能,其作用是如果有两个功能同时复用在一个IO上,而且确实需要这两个功能,就可以把其中一个复用功能重映射到其他端口上(前提是,重定义功能的表里有对应的端口)。. b: C! `( ^5 h( O. N6 K$ z% `& T- K
**1)**VBAT:备用电池供电引脚,其可接一个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源。
' |. T* }& x6 f2 y1 ?, _) W6 ]1 ]$ K**2)**2号引脚是IO口或者侵入检测或RTC,IO口可根据程序输出或读取高低电平,是最基本也是最常用功能;侵入检测可以用来做安全保障的功能;RTC可用来输出RTC校准时钟、RTC闹钟脉冲或秒脉冲。) K1 {3 U) N* O+ F3 R6 Y- O( Y/ j
**3)**3、4号引脚是IO口或者接32.768KHz的RTC晶振。
9 `% z4 Y" \3 c9 V**4)**5、6号引脚接系统主晶振,一般是8MHz。芯片内有锁相环电路,可以对8MHz的频率进行倍频,最终产生72MHz频率,作为系统的主时钟。
2 e4 _' X+ k! [' C**5)**7号NRST为系统复位引脚,N表示它是低电平复位。
2 Q  p* k$ {8 G9 n, l**6)**8、9号引脚是内部模拟部分的电源,如ADC、RC振荡器等。VSS为负极,接GND,VDD是正极,接3.3V。& r9 k3 N4 b  @# d
**7)**10~19号引脚都为IO口,PA0兼具Wake-up功能,用于唤醒处于待机模式的STM32.
. c' ?. d' `$ a' x: ?' y5 y1 x* z20号引脚为IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的。/ \* ^8 h  K4 t7 D' z! T: H
**8)**23、24号的VSS_1(负极)和VDD_1(正极)是系统的主电源口。后面的VSS_2和VDD_2、VSS_3和VDD_3都是系统的主电源口,STM32内部采用分区供电的模式,把VSS都接GND,VDD都接3.3V即可。
0 x/ \: Y5 I& }% p**9)**25~33都为IO口。0 B! b+ o: `4 E. p1 e
**10)**34号加37号40号,都是IO口或者调试端口;默认的主功能是调试端口,调试端口就是用来调试程序和下载程序的,次STM32支持SWD和JTAG两种调试方式。SWD需要两根线,分别是SWDIO和SWCLK;JTAG需要5根线,分别是JTMS、JTCK、JTDI、JTDO、NJTRST。此处介绍用STLINK下载调试程序,在SWD调试方式时,PA15、PB3、PB4可以切换回普通的IO使用,但是要在程序中进行配置,不配置的话默认是不会为IO口的。
5 \8 s- @# q# `7 I2 J. L* p/ [**11)**41-43及45~46都是IO口,44号BOOT0做启动配置。8 u3 S7 H6 \/ @# P
/ k. T' N: w# w: s
5.启动配置: M+ v8 E, ~' q' o
, I4 ^6 u' X5 X. |. `, a
a9c08a9044a64fd2a95dd9b5d4f1bb16.png
* g# G$ L/ I4 h  p
! K/ W6 [0 E8 x启动配置的作用就是指定程序开始运行的位置,一般情况下,程序都是在Flash程序存储器开始执行;当然在某些情况下,需要程序在别的地方开始执行,用来完成特殊的功能。
; g9 K( m- ~/ O4 o% }! y+ S/ `在所述STM32系列中可以通过配置BOOT0和BOOT1引脚,来选择三种启动模式。
  A: ]3 T3 K5 a2 [" r9 s**1)**BOOT0接0(即接地),此时BOOT1无论接什么,启动模式都为主闪存存储器模式。
. e. Q& r) ^8 K5 Q5 a, Z8 B**2)**BOOT1接地,BOOT接1(即接3.3V电源),系统模式被选为启动区域(此模式用来做串口下载用)。BOOTLoader程序,其作用就是接收串口的数据,然后刷新到主闪存中,就可以使用串口下载程序。% l7 y: C  A! @5 a' t, j
**3)**BOOT0接1,BOOT1接1,配置内置SRAM启动,主要用来进行程序调试。9 D3 U# Q3 Y! s+ H* [5 j
表6 最后一句话的意思为,BOOT引脚的值是在上电复位后的一瞬间是有效的,之后就随意了。3 Q- p4 m0 u& V% @4 }/ a

- i: X0 B( y, S1 q# |  j6.STM32最小系统电路

3 J5 K; ^/ H( u8 D; e3 C2 d* {
# ?# y3 b- C9 A/ Q2 k+ W 3a21b29cb04f46ba8d6d65023a9c940a.png
: L: N( {" B6 q+ ]- k  O' M6 K) c. E5 m9 c1 P8 U/ m. X7 V
右侧为STM32及供电部分。滤波电容可保证供电电压的稳定,遇到供电都会习惯的加上几个滤波电容。3 x! r4 g# U* h6 N# A
OSC32为32.768KHz晶振的意思,32768(2的15次方),内部RTC电路经过2^15分屏,就可生成1s的时间信号。
  O' [9 l; G3 ]+ g. L; ]% D
8 _: Q, O, y1 W  V总结
0 H" m2 B# H! |+ P7 |0 ?8 t8 c
要想让STM32正常工作,就需要把电源部分和最小系统部分的电路连接好(最小系统版),即引脚定义标砖红和蓝色的部分。仔细阅读官方手册。
2 ^% G( N. J8 ~( J! `————————————————: G0 W3 e' x4 @" `' B
版权声明:Neu_leizi
* W- j1 _2 @8 G0 T6 c
* e' [6 k! O4 g& U1 q4 m( }9 O* [  n8 F. R) i3 {1 ~/ n8 `5 P7 }
e3e2fededda440d1b5c001a6e8d82504.png
9c137b55176c45b8b6b28182b3adc131.png
fccaec12774643fa9188774d62f9194f.png
bb1332bacbda4ec7a554cd514ca3e4fe.png
收藏 评论0 发布时间:2022-10-31 23:42

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版