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

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

[复制链接]
STMCU小助手 发布时间:2022-10-31 23:42
前言: X) \  Q; R9 E) H
提示:这里可以添加本文要记录的大概内容:, k) T  h: Q6 g6 `# u1 [
介绍STM32的片上资源/外设、命名规则、系统结构、引脚定义、启动配置、最小系统电路等基础内容。
/ O- A. F, E# pSTM32:ST指ST公司、M指Microcontroller(微控制器)
5 H7 a5 T. \! J4 m7 W8 u+ @
9 |' k" [# r/ x, `" h2 N# Q$ M一、STM32简介, y6 O& g1 ?0 S
1)STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。
/ |3 `) s8 C3 l& ~( U5 A2)STM32常用在嵌入式领域。
9 h# y9 q7 o% r+ U6 T7 k0 R(1)智能车:循迹小车,读取光电传感器或者摄像头的数据,驱动电机前进和转弯。5 r& i1 f5 i* t4 o
(2)无人机:读取陀螺仪加速度计的姿态数据,根据控制算法控制电机速度,保证飞机稳定飞行。
7 O/ _( U- W3 C1 s& d(3)机器人:驱动舵机,控制其关节,让机器人运动。
( i9 H9 C. r3 w(4)无线通信:给STM32连接一些2.4G无线模块或者蓝牙、WIFI模块,则具备无线通信能力。1 G$ X5 z2 _, V( h
(5)物联网:借助无线通信模块,再通过STM32驱动继电器来控制220v电路的通断。
8 [. C1 D/ W6 f(6)工业控制:PLC主控。
# j& R4 E( \) x8 F(7)娱乐电子产品:流水灯之类……9 T1 B8 S( L$ \6 `1 z, ]
(8)……
4 b; ]6 y% G5 G6 B5 _0 ?3)STM32功能强大、性能优异、片上资源丰富、功耗低、是一款经典的嵌入式微控制器。
" L1 t3 y# f  J6 w6 h; f6 \; U3 R acda12e9816a45be99666cdd9567c812.png
* n( u+ i5 Y% t. Q2 A" {! v0 l& o- S; Q1 |% Q. a( @* \
此处用STM32F103C8T6。% _3 T2 B3 E+ w5 _9 R+ D
% k7 Q% B" ]; V
二、STM32F103xxx+ {; z. Q. K, `- B: d
1.STM32F1系列片上资源/外设
$ F" M2 R9 v4 C% D( D

9 m1 x* L& }! t( e" f' H 1d0d4dd49df14c64895575c10ad2ba3c.png 0 f3 Q, y2 O8 a3 f. {0 h
  v+ B# k( X: Z' Z' |
NVIC:管理中断,如配置中断优先级等。
! c  w' Y3 F8 C9 f$ _5 J5 p) QSysTick:给操作系统提供定时服务。6 E/ w# m) U+ m% ]+ z2 Q4 [7 F
RCC:使能外设时钟。6 l& [& ?1 a  V. v4 Q: b$ R
AFIO:复用功能端口重定义,及中断端口配置。
! |* r, U, r5 u8 eCAN:多应用于汽车领域- ^+ ~% b" q" j
RTC:在STM32内部完成年月日、时分秒的计时功能,可接外部备用电池,掉电也可使用。
7 N, V5 q! ~3 _$ K" ]3 \) q# ACRC:判断数据的正确性。
! g5 Q: n+ @) [, oPWR:电源可睡眠,使功耗降低。! A' c6 Y. y/ M
GPIO、EXTI、TIM、USART、I2C、SPI、ADC、DMA等都会在专题内逐一介绍。
' C! A# I/ }% Y: g5 l% d- d
4 W  ?! S! Y9 s1 @3 M8 P da68e632de754e6e9da4b91387cf8c67.png 1 o  G) r) H) z' l' @9 v. v, k& ~8 U
/ b! B& R# N8 N# t. z' h
如果操作片上不存在的外设资源,是无法工作的。
' f5 I, v$ z' Z) c7 a' j! d$ i. t, E$ Z2 P( ^. B
2.命名规则9 _4 V$ {' d) T8 z. Z
示例:STM32 F103 C 8 T 69 |; {% @+ r0 b9 m8 ?

: L; Z" ?% O1 p/ D ad52110a72c940429ba3a43b21796fbf.png
: A% R+ u, W9 Q3 C( ]$ q* s
0 r$ `6 T. m1 } 738c9acfbd174bbb98d1ede83a1d3c69.png ) r5 h, w6 g! I

& i# p4 k1 h: g$ V' M  {: F7 j$ l4 j0 ^9 V
) v% r8 ?) Q9 R
9c137b55176c45b8b6b28182b3adc131.png
5 Z: Q( M2 k" ?5 A# f% q# A, g+ ], A

7 i: w+ M' r  O2 P' t
; G9 u* z. }% X bb1332bacbda4ec7a554cd514ca3e4fe.png 7 m# u9 b$ d8 p3 h4 M
3 t5 i0 V7 G, J7 l
8a060c073dfa42d2ac91e840ead3079e.png * m$ O/ e5 }7 S4 _# d
" {3 K$ Z5 Z$ v$ C- c+ J
可见STM32F103C8T6的具体参数为:增强型、48脚、64K字节的闪存存储器、LQFP封装、在-40~85℃间可正常工作。  E. H5 p4 {: b3 s  E% u! t6 U0 \

+ p- I+ S# K# x4 H; l3.系统结构' [) }8 {5 y7 _0 v1 X

* Y6 m% Y& u# ? dc418e1038b147f78ea957f48661b4bc.png
  L! l8 l( ~9 k, t$ {
% U. }5 @$ y& Y& _" J; g: e将此结构分成四个部分:" R, g) y- K( i& l0 Z! r- O
**(1)**区域1位Cortex-M3内核,内核引出三条总线;分别是ICode指令总线、DCode数据总线、System系统总线。其中ICode和DCode主要用以连接Flash闪存,Flash中存储的内容为我们所编写的程序。ICode指令总线就是用以加载指令程序的,DCode数据总线是用来加载数据的,比如常量和调试参数等。System系统总线连接其他东西上,如SRAM(用于存储程序运行时的变量数据)、FSMC等。
$ \1 e; s* z! a0 ~- i; [**(2)**AHB(先进高性能总线)系统总线用于挂在主要外设,挂载的一般是最基本的或者是性能比较高的外设,如复位和时钟控制(RCC)、SDIO、两个桥接(APB1和APB2)等。APB(先进外设总线),用于连接一般的外设;因为AHB与APB在总线协议、总线速度、数据传送格式之间的差异,故中间需要加两个桥接,完后数据的转换和缓存。APB2(一般与AHB同频)的性能比APB1高一些,故连接一些外设中稍微重要的部分,如GPIO、外设的一号(USART1、TIM1、ADC1……);APB1则连接DAC、外设的其它号(USART2、TIM2……)。前文所述的就为区域3,主要介绍的就是外设种类和分布。' o1 f: {/ [7 r' J
**(3)**区域4为DMA(直接内存访问),可理解为内核CPU小秘书,若是有一些大量搬运数据的工作,为了减少CPU的工作量,给其它工作腾出时间,就将此工作交给DMA来做。
: `9 X3 b0 S, CDMA主要用来做如数据搬运一样简单且反复要做的事情,其通过DMA总线连接到总线矩阵上,可以拥有和CPU一样的控制权,用于访问其它外设;当需要DMA搬运数据时,外设就会通过请求线发送DMA请求,然后DMA就会获得总线控制权,访问并转运数据,整个过程不需要CPU的参与,省下CPU的时间来干其它事。
6 O! U( E. e; J. [+ V6 f7 t. a8 J$ Y* ?- t
4.引脚定义
9 j1 r8 C/ g0 G4 n+ J; t' k在拿到新的芯片时,需要着重的看一下其引脚定义,这样才能大致了解该如何使用该芯片。
" @6 D( y' }0 ?! ~8 o, g) F7 q8 I. W' _" O/ o5 v( ^
ac239211ea7c45d39485fadba2dc0c11.png
( C" R& C8 ]! r3 d3 Q9 u; f, g; @4 F) j; L- g/ t
6b2bc3ac11684325aaae2de822f66ce0.png 5 u. b4 ~$ j) [* G
0 |, i1 n7 l6 @$ Z" ]/ M5 ^
砖红色:与电源相关的引脚;有FT则表示其可忍受5V电压,如果没有FT,需要5V的电平就需要加装电平转换电路。
* ?2 p- ^1 y3 q# n1 g- \% C8 Q  @蓝色:与最小系统相关的引脚* |& E, Q$ f; C! T
绿色:I/O口、功能口相关引脚# U' W0 H  s4 e2 H: p( b6 N) A# f
主功能就是上电后默认的功能,一般和引脚名称相同;若不同,引脚的实际功能是主功能而不是引脚名称的功能。默认复用功能,是IO口同时连接的外设功能引脚,在配置IO时可以选择是通用IO口还是复用功能。重定义功能,其作用是如果有两个功能同时复用在一个IO上,而且确实需要这两个功能,就可以把其中一个复用功能重映射到其他端口上(前提是,重定义功能的表里有对应的端口)。. D5 u% K" q3 ^# x0 s1 a
**1)**VBAT:备用电池供电引脚,其可接一个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源。0 u) w1 D  q/ F) J: j* \
**2)**2号引脚是IO口或者侵入检测或RTC,IO口可根据程序输出或读取高低电平,是最基本也是最常用功能;侵入检测可以用来做安全保障的功能;RTC可用来输出RTC校准时钟、RTC闹钟脉冲或秒脉冲。
+ s" S- e5 ^) {% @1 ?**3)**3、4号引脚是IO口或者接32.768KHz的RTC晶振。6 O, p4 H6 \3 {4 C4 W
**4)**5、6号引脚接系统主晶振,一般是8MHz。芯片内有锁相环电路,可以对8MHz的频率进行倍频,最终产生72MHz频率,作为系统的主时钟。
' G! {) C( g) n) u$ _! d**5)**7号NRST为系统复位引脚,N表示它是低电平复位。
6 i1 I( v0 R+ J% Z**6)**8、9号引脚是内部模拟部分的电源,如ADC、RC振荡器等。VSS为负极,接GND,VDD是正极,接3.3V。
, |- k1 G/ G  |- K/ K, E+ d! x**7)**10~19号引脚都为IO口,PA0兼具Wake-up功能,用于唤醒处于待机模式的STM32./ Z( R1 x& u3 l. {3 Y0 q1 [
20号引脚为IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的。) \( [( ?) ?- }. _: s. p1 }
**8)**23、24号的VSS_1(负极)和VDD_1(正极)是系统的主电源口。后面的VSS_2和VDD_2、VSS_3和VDD_3都是系统的主电源口,STM32内部采用分区供电的模式,把VSS都接GND,VDD都接3.3V即可。
1 e' n+ }. [* s- ~9 _**9)**25~33都为IO口。
( U! n6 Z- s: E  x# I4 S**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口的。
* q& }; G& D7 f5 I0 k3 Z**11)**41-43及45~46都是IO口,44号BOOT0做启动配置。9 X4 Z% |3 T! j: ^5 x. m4 M! e

8 c% S# d( C1 }- h6 d5.启动配置
( U% Z; r; v% ?, d4 R5 s4 E* N1 ]
  d7 w, ~: Z" d* F/ f6 B9 y a9c08a9044a64fd2a95dd9b5d4f1bb16.png 3 r- M+ \* P# b+ L

! X! j* E' F( I& z0 P' @, Z启动配置的作用就是指定程序开始运行的位置,一般情况下,程序都是在Flash程序存储器开始执行;当然在某些情况下,需要程序在别的地方开始执行,用来完成特殊的功能。2 F- k& M9 `* u3 a6 I* J0 n- R  ?
在所述STM32系列中可以通过配置BOOT0和BOOT1引脚,来选择三种启动模式。
; o* l: C/ R8 J2 W% }5 M# l**1)**BOOT0接0(即接地),此时BOOT1无论接什么,启动模式都为主闪存存储器模式。0 v! _1 ~0 E8 d
**2)**BOOT1接地,BOOT接1(即接3.3V电源),系统模式被选为启动区域(此模式用来做串口下载用)。BOOTLoader程序,其作用就是接收串口的数据,然后刷新到主闪存中,就可以使用串口下载程序。
1 e' O0 P- |6 X2 i+ t**3)**BOOT0接1,BOOT1接1,配置内置SRAM启动,主要用来进行程序调试。( i  _3 g3 W; o  X/ w. O8 Z. [
表6 最后一句话的意思为,BOOT引脚的值是在上电复位后的一瞬间是有效的,之后就随意了。
$ ]# [8 K/ t- W: a6 N/ [8 k
6 e' O, A  j% h- d6.STM32最小系统电路
. y0 k% `  y7 C7 d0 `2 f' C' F
" g' j) M. {; h0 a6 U
3a21b29cb04f46ba8d6d65023a9c940a.png
8 J2 Y$ z* w. B3 Q! Y6 ~+ z; S6 P# H  {1 B! e; T+ q
右侧为STM32及供电部分。滤波电容可保证供电电压的稳定,遇到供电都会习惯的加上几个滤波电容。+ n2 a  ^% F+ d7 G
OSC32为32.768KHz晶振的意思,32768(2的15次方),内部RTC电路经过2^15分屏,就可生成1s的时间信号。
" ?/ p: j9 d. y- o
! [9 q' @7 Q/ [9 b' ?' x. c总结
& l' b) W0 V6 \# ^+ c4 T
要想让STM32正常工作,就需要把电源部分和最小系统部分的电路连接好(最小系统版),即引脚定义标砖红和蓝色的部分。仔细阅读官方手册。
8 p. ^5 Z% C* j7 [: l————————————————$ s7 P. X5 C3 K# ^6 `% L$ F* d: m
版权声明:Neu_leizi
' h% {1 N1 H# t  f( z3 \) R0 Y3 `7 y/ _7 k% R0 m, \6 T# Z

6 `$ a. h& E) c* ^0 b
e3e2fededda440d1b5c001a6e8d82504.png
9c137b55176c45b8b6b28182b3adc131.png
fccaec12774643fa9188774d62f9194f.png
bb1332bacbda4ec7a554cd514ca3e4fe.png
赞 收藏 评论0 发布时间:2022-10-31 23:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版