1. 工程更换不同的STM32芯片 ( s( w* }1 J2 C3 `& Z* @6 n eg:stm32f103rct6 ---->stm32f103c8t6: h6 S- N r+ x* ^; B8 ^" ^6 } 1.1. 修改芯片 点击魔术棒,在出来的菜单栏里,Device 选项重新选择芯片 % e/ g6 W3 P: h' l, u
, ~2 g! z$ D1 |5 O0 j 1.2. 修改启动文件 此处举例是 RCT6 修改为 C8T6,因为 flash 容量大小不一样,所以需要对应修改启动文件,如果是 flash 大小相同,此步骤不需要。此处由:startup_stm32f10x_hd.s修改为startup_stm32f10x_md.s
: s) W y' f( C: n7 ~4 x 1.3. 修改全局宏定义5 @- b+ a4 r! w- M 同样先点击魔术棒,在菜单栏选择 C/C++。进而修改全局宏定义。此处:STM32F10X_HD–>STM32F10X_MD ' Y' M7 o) P$ f3 m
) q1 h5 `2 q1 P 1.4. 重新添加FLASH & t0 f1 Y, w. t$ W! |1 f% F 此处是将大容量的 RCT6 修改为中容量的 C8T6,所以我们需要重新添加 flash。 5 W& `( ]6 m! _5 L
至此,一个工程就从 RCT6 修改为 C8T6 ,编译下载即可。 # t- x' Q! x; ^) q3 X) ?# H0 M' d, D/ H 2. 外部晶振的修改 m% u& x* S0 u5 [9 ` 2 v8 U3 R+ G( R. \5 `2 W/ ^1 H 此处举例:8M---->12M 常见的STM32硬件外部用的也是 8M ,今天一个新板子原理图画的是25M,实际焊接的是 12M,找了一下午问题,最后发现是晶振引起的问题。遇到问题,除了多思考总结,也要在网上查找资料,很多问题我们的前辈已经遇到并且解决了,这样我们学习的过程也会轻松一些。 ) o: L `) t) k) p8 P$ k4 h/ z 2.1. 修改 stm32f10x.h 文件" C" U, U5 }# E; L P6 ? 3 V% `% \; }/ `+ B 默认是8M,修改为12M。
, r$ [- o r, @- h5 ]
% h, }+ l* P3 t 2.2. 修改 system_stm32f10x.c 文件" n! |; ^3 v9 h3 b. y& H) b 默认是9倍频,最大 72MHz。修改为:RCC_CFGR_PLLMULL6。
% V$ \! \8 w$ c : N" z* Y$ z; d5 n M5 f: o" u2 S 0 i# i" t: U& R, H" G, f ) E1 f# k7 I, W; z |