一、什么叫最小系统% ?# E& S* d2 S 1 J7 ~4 ]; d; \ 最小系统就像我们人,我们活着每天都要吃饭,喝水。, E8 X# w) O! G* O 0 e* g. E; q& T5 r, v: ? 饭和水就是我们的”燃料”,离开它们我们就挂了。 & C& D8 e6 q7 L- h, R* _ 其实在芯片的世界也一样,单片机想要正常运行,它也需要”燃料”,这些燃料的组成就是最小系统。& w/ F: l" E. g$ I) D; e5 l! h& X) x ; Y( |$ u4 t* M7 R: p , ?0 @: H" n9 p4 V" w/ n- o 一、“燃料”都由什么组成?" r$ N: l% U! B5 _ : Q G& \- H p8 z 1.电源 ( Q- }0 v, S+ W N0 C) v' P( _; n 拿STM32F103C8T6这个型号来说,总共有5个接电源正极和4个接地引脚,分别给内部不用的模块供电。 ! D" X I0 P" V8 F, I) x VDD:就是单片机的供电电压。 [$ C: |' ^* ]; k5 ` VDDA:VDD后面有个A,A=Analog,表示模拟的意思,就是芯片内部模拟器件的工作电压。 ! l. Y, W3 b( X8 y: z VSSA:表示模拟器件的公共端地。 7 Y& u5 n4 O: _2 \" |# _* H( a7 f VBAT:给后备区域供电,维持RTC/BKP寄存器这些数据掉电保存,一般是接纽扣电池,如果不需要可以直接接电源。 根据数据手册的说明,这几个引脚的供电电压最大不能超过3.6V。( k+ b2 W* a6 Y3 K S* W . H: O* _1 {3 {! w 说到数据手册,作为一个英语渣,这里多说一句,不要怕全是英文,不用全看懂,抓关键的地方看,其实来来去去就那几个英文。 i1 A% N- s2 t; y& r2 m0 l4 v2 Z 2.复位电路 5 W: D+ X @) R Q, I 复位电路的作用就是,板子上电的瞬间给单片机复位引脚(NRST)一个短暂的低电平,让单片机程序复位,把除了备份区域寄存器以外所有寄存器状态恢复原始状态。# }6 g- Q6 f; S3 Z" ?6 g 5 y p- O, X/ A0 f9 G: r% a% ? 简单来说就是让程序重头开始跑。 ; U# R% A" D, V. F4 p/ b 复位电路的原理是利用RC电路的充放电原理,在上电瞬间为NRST引脚产生一个短暂的低电平。/ ]' v r* k% H0 C, l* @ 刚上电的时候电流会通过R19和C20到地,为C20充电,此时NRST的引脚为低电平。 P1 s# e8 D1 ?) ?4 c! h% ` 当C20充满电以后,C20就处于”断路”的状态,此时NRST由低变高电平。0 a( ~3 t, ^' J6 ?2 l7 _# D+ B 3 f" Y Q) ~/ ^# l9 w' m7 d 3.系统时钟1 O9 C( U) L4 t7 p + t+ q2 d$ R2 y9 ~$ J1 C 2 j7 t) D+ Q" m 系统时钟一般是加外部晶振电路,相当于给单片机一个心跳。 就跟人的心跳一样,没心跳肯定就GG了。2 S9 O) I& @& s y& E: u 同样,单片机没心跳也跑不起程序。 M- ~0 a% @9 P' w ' G- G1 I8 h# P 这个心跳也是一个时机基准,为单片机系统时钟、定时器之类的提供时间的基准。 我们最终计算定时器的时间,都跟这个晶振息息相关。1 `! N5 J4 s: r* _& | 4.烧录口9 ]- l8 V% N$ H4 m9 T1 x% Q 烧录口的作用就是给单片机烧录程序,注入灵魂。+ ~# c7 b5 P1 @' |/ C ; `7 v( O4 @$ E5 X, S( ~ STM32的烧录方式有几种,实际产品开发一般用SWD接口烧录,占用尺寸空间少,一般只需要5根线,也有些用4根线的,就是vdd不接,不接vdd烧录要单独给板子供电。 . G8 ^/ |) _* P( | 5.Boot0和Boot1 Boot0和Boot1是用来选择STM32单片机的启动方式的。 " y6 G% f! |, o4 W# H/ Y 如果上图你看不懂什么意思,不要慌,正常的。 9 f7 n' p) o* f- P5 j# t 简单来说,大家要想正常跑程序就要把Boot0和Boot1都接到地,就是正常工作模式。# j8 Y' L3 x. S5 x! Z6 F$ g6 m0 d. s 6 r* i$ `7 o2 f6 `. @ 如果我们要使用串口烧录,也就是ISP,就需要把BOOT0接到电源,BOOT1接到地,烧录完以后再全部接到地,相对麻烦很多。 2 R* H) }0 I4 ~3 r 这也就是为什么我只用SWD烧录的原因,直接全部接地就行了。; i4 w" t$ z2 N) K3 z; E5 T1 s 3 T4 Q3 \+ [. D* f C" I# Z 电路图中Boot0和Boot1加一个10K电阻,然后接到地8 X' ?: y7 V3 B 通过上面这些电路的组合,单片机就能正常跑程序了。 ———————————————— 版权声明:岁月哥 / U2 j8 r* u) d% n / y& G: F g4 A1 Q5 n4 n: i) d |
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
MultiButton移植到STM32F103战舰开发板
UDS诊断服务
使用Nano板验证驱动SPI串口屏的颜色显示
使用STM32F103制作的无线下载器
小马哥STM32F103开源小四轴RoboFly全部资料大放送
STM32F103移植LittlevGUI代码
【MCU实战经验】+自制MP3使用STM32F103ZET6和ch375读取u盘,vs1003解码,音质超棒
串口通信波特率异常的解决办法
【MCU实战经验】+STM32F103的uCOSII详细移植