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

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

[复制链接]
STMCU小助手 发布时间:2022-10-31 23:42
前言
9 v  s8 ~0 J: s4 Q( P0 @- B提示:这里可以添加本文要记录的大概内容:3 y% R/ S+ P) w
介绍STM32的片上资源/外设、命名规则、系统结构、引脚定义、启动配置、最小系统电路等基础内容。5 r5 r6 K) |& ~" ]8 @( i
STM32:ST指ST公司、M指Microcontroller(微控制器)& x8 V& v" L4 h( u3 Y' M

3 `/ D2 L! t/ J6 \2 ~0 i/ a一、STM32简介
' e) |% A" r7 W* v1 h1)STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。
3 h7 _7 f  {  e6 |2)STM32常用在嵌入式领域。$ x8 D4 T# o3 {8 J& _- s) ]1 u
(1)智能车:循迹小车,读取光电传感器或者摄像头的数据,驱动电机前进和转弯。
" Y3 Q+ p2 i( N4 B(2)无人机:读取陀螺仪加速度计的姿态数据,根据控制算法控制电机速度,保证飞机稳定飞行。+ _# d: N3 h+ M4 r- w) l, ~
(3)机器人:驱动舵机,控制其关节,让机器人运动。
, b1 K  b" X6 O) ?7 J(4)无线通信:给STM32连接一些2.4G无线模块或者蓝牙、WIFI模块,则具备无线通信能力。, ?0 C$ ?  d" ~% _! H
(5)物联网:借助无线通信模块,再通过STM32驱动继电器来控制220v电路的通断。6 N1 k9 h; h7 e) s
(6)工业控制:PLC主控。7 G- e7 x2 R% y9 R- K; j# @4 B  R' B
(7)娱乐电子产品:流水灯之类……
$ ]* a* ^3 Y/ a) ^/ e(8)……9 @8 q( z* N- P1 Y1 l
3)STM32功能强大、性能优异、片上资源丰富、功耗低、是一款经典的嵌入式微控制器。" y6 l1 P! p' A6 L
acda12e9816a45be99666cdd9567c812.png # }, N: t7 J1 q

, q% H* X* F5 G$ I; s4 ]此处用STM32F103C8T6。
! s: Y" C4 F- B( M
, E/ G8 a* l2 I- X* E. G6 j二、STM32F103xxx
! C! L) B/ M4 k* c4 L6 k) c2 q1.STM32F1系列片上资源/外设
  o) l) E% Y: @( {# o- h. e4 f
- S) q3 S9 r7 C5 f, v8 |. r9 }
1d0d4dd49df14c64895575c10ad2ba3c.png
8 ~6 x# E5 n# ^1 t- e/ R- z" S4 C, e+ N! B, b2 T4 s: m, }4 l
NVIC:管理中断,如配置中断优先级等。
/ I2 Z) P! g2 tSysTick:给操作系统提供定时服务。& T% b$ s+ K* D% h: m" }
RCC:使能外设时钟。
2 D2 ^2 [; a# B8 lAFIO:复用功能端口重定义,及中断端口配置。
& S( P0 E- }4 S6 a' C( QCAN:多应用于汽车领域6 [$ t! P6 \& H" b  `0 i
RTC:在STM32内部完成年月日、时分秒的计时功能,可接外部备用电池,掉电也可使用。
% p5 U4 V2 i3 W4 F9 J% a8 q9 pCRC:判断数据的正确性。2 W) [0 k+ v; W* r; z5 j
PWR:电源可睡眠,使功耗降低。9 a  T) b3 K; e  n: R8 U# q
GPIO、EXTI、TIM、USART、I2C、SPI、ADC、DMA等都会在专题内逐一介绍。+ L" N8 @, h$ R/ v2 n4 U
8 ]/ `/ P& K0 t  E! m8 p
da68e632de754e6e9da4b91387cf8c67.png
) D0 M- k9 D1 i/ O, ^: G/ }1 O' E2 q( N' W2 ]0 ]" X. f+ _6 r
如果操作片上不存在的外设资源,是无法工作的。/ D( f5 A+ N) c1 G" @
% N7 p1 _6 F9 N
2.命名规则
9 F' r0 D, y4 k% Y# u7 g+ P- J! o示例:STM32 F103 C 8 T 6) l+ q7 l4 Z1 G$ ~

" W- G" }( D5 S2 X ad52110a72c940429ba3a43b21796fbf.png
  s7 a" A& U/ v6 F( J% U/ y5 A( O) C! {( l; V8 L
738c9acfbd174bbb98d1ede83a1d3c69.png 0 x, E- l, @% h" F% S2 A6 U
& }8 x' d! X# g9 N" u- X& F  X

+ Z* U, o8 x4 g) M3 a" T- S
! a1 {1 T# j$ a- W1 ^ 9c137b55176c45b8b6b28182b3adc131.png
  K7 B+ h) G6 M* q
, U+ t/ O4 z1 p- f% [+ i7 `  E) ^& Y7 _+ M* ]) O

( x% K7 g5 R2 K bb1332bacbda4ec7a554cd514ca3e4fe.png
" p: m6 s' x) y( ?; `5 ?  F1 l$ [) B  ^
8a060c073dfa42d2ac91e840ead3079e.png ) X7 j3 Y* X" P6 X. q
% Q: H, h* D) y: i5 N/ e0 V2 _
可见STM32F103C8T6的具体参数为:增强型、48脚、64K字节的闪存存储器、LQFP封装、在-40~85℃间可正常工作。
: T2 H# ~/ _2 S" H" [  Z
* J& g8 {9 f" e6 X) }" O2 J( }: o3.系统结构
5 h. J2 d" l( U; A# }' i/ r" l  F; ^& o* F0 h7 \4 a6 F
dc418e1038b147f78ea957f48661b4bc.png
4 L2 ^7 s9 o$ X/ n/ z5 H0 R
2 ?! p7 }! j2 g! y' ]; }将此结构分成四个部分:: @: O7 g% T  w* W+ b' i  G' E
**(1)**区域1位Cortex-M3内核,内核引出三条总线;分别是ICode指令总线、DCode数据总线、System系统总线。其中ICode和DCode主要用以连接Flash闪存,Flash中存储的内容为我们所编写的程序。ICode指令总线就是用以加载指令程序的,DCode数据总线是用来加载数据的,比如常量和调试参数等。System系统总线连接其他东西上,如SRAM(用于存储程序运行时的变量数据)、FSMC等。& Z. w0 C4 a* h' @% `- z
**(2)**AHB(先进高性能总线)系统总线用于挂在主要外设,挂载的一般是最基本的或者是性能比较高的外设,如复位和时钟控制(RCC)、SDIO、两个桥接(APB1和APB2)等。APB(先进外设总线),用于连接一般的外设;因为AHB与APB在总线协议、总线速度、数据传送格式之间的差异,故中间需要加两个桥接,完后数据的转换和缓存。APB2(一般与AHB同频)的性能比APB1高一些,故连接一些外设中稍微重要的部分,如GPIO、外设的一号(USART1、TIM1、ADC1……);APB1则连接DAC、外设的其它号(USART2、TIM2……)。前文所述的就为区域3,主要介绍的就是外设种类和分布。4 l& s6 H; U! D; x
**(3)**区域4为DMA(直接内存访问),可理解为内核CPU小秘书,若是有一些大量搬运数据的工作,为了减少CPU的工作量,给其它工作腾出时间,就将此工作交给DMA来做。
" X- v5 M. c: W- [. CDMA主要用来做如数据搬运一样简单且反复要做的事情,其通过DMA总线连接到总线矩阵上,可以拥有和CPU一样的控制权,用于访问其它外设;当需要DMA搬运数据时,外设就会通过请求线发送DMA请求,然后DMA就会获得总线控制权,访问并转运数据,整个过程不需要CPU的参与,省下CPU的时间来干其它事。, ?% H2 k; }. m8 e6 @) p% `" Q- h

" X5 a" y; t( f: h* U0 M; G4.引脚定义
" n8 N+ n4 i, Q  y0 f! ~在拿到新的芯片时,需要着重的看一下其引脚定义,这样才能大致了解该如何使用该芯片。
! v6 D! T8 o" j$ d0 c
% F2 u! |( d6 j! M ac239211ea7c45d39485fadba2dc0c11.png 8 d. ~/ l, A: X
, N+ V+ j" r) ~" F0 J
6b2bc3ac11684325aaae2de822f66ce0.png - q+ c4 N; s8 g* E

0 _/ C: k, x. f5 z砖红色:与电源相关的引脚;有FT则表示其可忍受5V电压,如果没有FT,需要5V的电平就需要加装电平转换电路。' J" _3 P4 Z7 C) D+ ^
蓝色:与最小系统相关的引脚" D  h* D$ W$ q3 C2 b
绿色:I/O口、功能口相关引脚9 v6 l% }5 ^3 i0 p* P
主功能就是上电后默认的功能,一般和引脚名称相同;若不同,引脚的实际功能是主功能而不是引脚名称的功能。默认复用功能,是IO口同时连接的外设功能引脚,在配置IO时可以选择是通用IO口还是复用功能。重定义功能,其作用是如果有两个功能同时复用在一个IO上,而且确实需要这两个功能,就可以把其中一个复用功能重映射到其他端口上(前提是,重定义功能的表里有对应的端口)。
; p* D# o4 c3 X  ~**1)**VBAT:备用电池供电引脚,其可接一个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源。* }8 a( W$ b6 l- R) G
**2)**2号引脚是IO口或者侵入检测或RTC,IO口可根据程序输出或读取高低电平,是最基本也是最常用功能;侵入检测可以用来做安全保障的功能;RTC可用来输出RTC校准时钟、RTC闹钟脉冲或秒脉冲。
. B4 P7 O- H  \; F7 U**3)**3、4号引脚是IO口或者接32.768KHz的RTC晶振。; f3 h+ ]& [8 ~4 j' T( ?6 V
**4)**5、6号引脚接系统主晶振,一般是8MHz。芯片内有锁相环电路,可以对8MHz的频率进行倍频,最终产生72MHz频率,作为系统的主时钟。
* `# @  c( f" M3 k% m* D5 z**5)**7号NRST为系统复位引脚,N表示它是低电平复位。! s' m$ u$ L/ q& h, g& f8 r) Z
**6)**8、9号引脚是内部模拟部分的电源,如ADC、RC振荡器等。VSS为负极,接GND,VDD是正极,接3.3V。; n/ ^# ~' D$ w6 }- N. F0 {
**7)**10~19号引脚都为IO口,PA0兼具Wake-up功能,用于唤醒处于待机模式的STM32.; u' N  @: M' Z, B; B
20号引脚为IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的。
( R0 o, W# ]9 d# l**8)**23、24号的VSS_1(负极)和VDD_1(正极)是系统的主电源口。后面的VSS_2和VDD_2、VSS_3和VDD_3都是系统的主电源口,STM32内部采用分区供电的模式,把VSS都接GND,VDD都接3.3V即可。
; y+ v' I( }* S( w**9)**25~33都为IO口。
( a# ]: K$ O7 n) e" d0 k9 ^2 v7 ^8 b**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口的。/ U6 _+ k/ x( `/ J: H$ }% x
**11)**41-43及45~46都是IO口,44号BOOT0做启动配置。
# I! c1 K( f; c8 j
$ \: z* ]' t2 G5.启动配置
0 Y  m6 [* A# m# Z. B( w/ [' Z- Z% _  O" Q2 t9 x) g
a9c08a9044a64fd2a95dd9b5d4f1bb16.png
4 K$ }- l0 [& R! @$ k) |5 X; k- z2 u$ C' [! I$ P7 w
启动配置的作用就是指定程序开始运行的位置,一般情况下,程序都是在Flash程序存储器开始执行;当然在某些情况下,需要程序在别的地方开始执行,用来完成特殊的功能。
. }9 T9 r# D- a. w1 f, o7 u在所述STM32系列中可以通过配置BOOT0和BOOT1引脚,来选择三种启动模式。: v; \8 B; p5 b) z) H/ V' N
**1)**BOOT0接0(即接地),此时BOOT1无论接什么,启动模式都为主闪存存储器模式。, b2 k" u1 x7 U- N
**2)**BOOT1接地,BOOT接1(即接3.3V电源),系统模式被选为启动区域(此模式用来做串口下载用)。BOOTLoader程序,其作用就是接收串口的数据,然后刷新到主闪存中,就可以使用串口下载程序。" k. i; N' [% a9 ]
**3)**BOOT0接1,BOOT1接1,配置内置SRAM启动,主要用来进行程序调试。
. H7 S8 V1 p) n+ B) l5 e表6 最后一句话的意思为,BOOT引脚的值是在上电复位后的一瞬间是有效的,之后就随意了。
3 U$ o6 H% W  K6 H: i* g
3 Y& [( s/ `1 `5 S, J6.STM32最小系统电路
; m- Z, e# E2 C" h" I$ [/ g
! D2 A# F' |+ H4 G8 d7 t$ K
3a21b29cb04f46ba8d6d65023a9c940a.png . Z. ^' a9 q& `7 c: x4 G
4 Q- Z0 f8 o! N$ e1 C+ M& W
右侧为STM32及供电部分。滤波电容可保证供电电压的稳定,遇到供电都会习惯的加上几个滤波电容。
' Q6 _8 @9 L6 T9 P9 r5 DOSC32为32.768KHz晶振的意思,32768(2的15次方),内部RTC电路经过2^15分屏,就可生成1s的时间信号。
( J. J5 O. i( H# J6 t! N
5 P$ W- D' S. Q/ z3 ^" \" V总结
8 F% K$ M; c* Y2 _+ O# a
要想让STM32正常工作,就需要把电源部分和最小系统部分的电路连接好(最小系统版),即引脚定义标砖红和蓝色的部分。仔细阅读官方手册。) [* u, o/ E0 {0 D) A4 n; m
————————————————
, L+ ~; I" m/ @/ T: g! I8 U- ?+ Z版权声明:Neu_leizi
0 N9 q' c. w4 E- N1 _, N' N0 Y* Z
8 M* k2 w3 i9 N0 |) Z6 Z+ M1 m2 A% d' J
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 手机版