
一、什么叫最小系统 最小系统就像我们人,我们活着每天都要吃饭,喝水。% F/ V% s" p' ]$ _3 p9 M 饭和水就是我们的”燃料”,离开它们我们就挂了。 " l3 |" z2 D2 }+ t7 a0 h% b5 w 其实在芯片的世界也一样,单片机想要正常运行,它也需要”燃料”,这些燃料的组成就是最小系统。+ r: B. U8 D9 ^8 s- H8 I" I& ^9 b & l' p& Y0 Q! E1 W : r+ F! m6 f: q 一、“燃料”都由什么组成? % R5 d1 `( c* I2 t9 A 1.电源 : E& H$ y% w# R. O+ L ![]() 拿STM32F103C8T6这个型号来说,总共有5个接电源正极和4个接地引脚,分别给内部不用的模块供电。1 t: Q* L8 M/ ^8 p5 Z. H7 B + |# y7 S G* A4 {4 y, l$ U VDD:就是单片机的供电电压。0 t( I% l" @4 Y( i8 g5 d ' u! e- {7 \$ m VDDA:VDD后面有个A,A=Analog,表示模拟的意思,就是芯片内部模拟器件的工作电压。 8 Z1 ~, o/ Q/ `: h4 N VSSA:表示模拟器件的公共端地。 ( \/ t' [: N4 R VBAT:给后备区域供电,维持RTC/BKP寄存器这些数据掉电保存,一般是接纽扣电池,如果不需要可以直接接电源。 ![]() 7 n. _) ^4 S1 M+ T& o7 ~2 f5 Z 根据数据手册的说明,这几个引脚的供电电压最大不能超过3.6V。9 R* t. X4 R; G# O6 \4 g" A4 `- X: f 说到数据手册,作为一个英语渣,这里多说一句,不要怕全是英文,不用全看懂,抓关键的地方看,其实来来去去就那几个英文。1 \+ S( @$ j2 D9 \' \ 2 ~! J! {" `0 L" ~8 `4 \* |2 p: ] 2.复位电路; E* E/ S9 [5 L4 Z" c! M ! Q# d8 x- r. e. D" c$ Y0 d5 _0 Z ![]() % Q5 P( K/ A' a, H' O" u 复位电路的作用就是,板子上电的瞬间给单片机复位引脚(NRST)一个短暂的低电平,让单片机程序复位,把除了备份区域寄存器以外所有寄存器状态恢复原始状态。: r+ x6 x$ A7 i7 V7 C! m0 n! v , V t: o8 G( @( \+ G; |; o2 c 简单来说就是让程序重头开始跑。 7 l9 ~" f! X. G; f" O9 E9 Q7 j2 J 复位电路的原理是利用RC电路的充放电原理,在上电瞬间为NRST引脚产生一个短暂的低电平。 3 I$ \% C# |: \ 刚上电的时候电流会通过R19和C20到地,为C20充电,此时NRST的引脚为低电平。 当C20充满电以后,C20就处于”断路”的状态,此时NRST由低变高电平。 # v" H9 L' S1 w: x8 V; u! l 3.系统时钟 ' i5 Z% U2 U( | C. Z ![]() 6 ~. E0 d$ |7 P7 @3 }# t ![]() 系统时钟一般是加外部晶振电路,相当于给单片机一个心跳。 6 w$ k" l' b6 ^2 c% ?+ n 就跟人的心跳一样,没心跳肯定就GG了。2 ]3 E( Z# t6 \+ P4 [ & b- E- c$ h" w. A/ Q% V- w 同样,单片机没心跳也跑不起程序。; r* j: x$ T G! Y* Q* i( J( } 这个心跳也是一个时机基准,为单片机系统时钟、定时器之类的提供时间的基准。 我们最终计算定时器的时间,都跟这个晶振息息相关。 2 x8 U2 e5 q0 Q! w7 ~8 A3 V$ K, k2 h 4.烧录口 ![]() 5 @: m0 X4 o: S 烧录口的作用就是给单片机烧录程序,注入灵魂。' W5 d0 \2 t2 y+ a& K3 J4 J' ]2 | / E- F5 T# \# W: w# d+ Z5 T% X* b STM32的烧录方式有几种,实际产品开发一般用SWD接口烧录,占用尺寸空间少,一般只需要5根线,也有些用4根线的,就是vdd不接,不接vdd烧录要单独给板子供电。" M3 O# k! z, ~5 l% c O4 F4 K3 U2 ?4 b 5.Boot0和Boot1/ s$ h I9 U6 b/ C1 t/ Q1 s/ Y 8 x3 L" p- K. F* [ Boot0和Boot1是用来选择STM32单片机的启动方式的。 ![]() 3 p8 u( O" D5 j$ w# w+ N 如果上图你看不懂什么意思,不要慌,正常的。. ^" R5 Z v7 V2 L8 m' p# h: G 2 H0 l# i* d& X5 H7 c. M 简单来说,大家要想正常跑程序就要把Boot0和Boot1都接到地,就是正常工作模式。 如果我们要使用串口烧录,也就是ISP,就需要把BOOT0接到电源,BOOT1接到地,烧录完以后再全部接到地,相对麻烦很多。 这也就是为什么我只用SWD烧录的原因,直接全部接地就行了。 电路图中Boot0和Boot1加一个10K电阻,然后接到地! v- }" N9 A x* Y/ v ![]() 通过上面这些电路的组合,单片机就能正常跑程序了。: D! |0 ?4 F- @9 `/ `0 H+ ~ ————————————————' z N& o4 E( d; E 版权声明:岁月哥 ( r+ i, m E2 m3 @* I9 K |