
下载st官方固件库! G8 q% L1 O. s& f1 a4 q 搜索并下载固件库" U; Q6 X8 M) W! y , u* [ X) p) b0 k' W5 G ![]() : d6 ~2 [7 q# t% Y p; b* S4 y) L# P 使用固件库创建工程模版(以后不用每次配置了)! u( ?/ ]7 r. w' s5 n4 e 新建一个“工程模版”文件夹,里边新建三个文件夹 工程模板; t: W- q$ f% D3 y |----Project 自己编写的代码把下载的库中的\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的! z# p1 j0 R( j+ y3 ~9 ? main.c stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h. X* J# D8 Y9 L0 B 复制进来 |----Libraries 下载的库文件中的同名文件拷贝过来的/ u- a7 y3 J. r5 C" P |----Output 存放编译完成后的机器码之类的 9 B) k4 `( c$ ~# m+ L! m 新建工程 然后打开keil5程序,Project -> New uvision Project... 目录选择为刚才新建的project目录,点保存会出现一个选择芯片的页面,选择所要用的芯片。 我所需芯片在STMicroelectronics -> STM32F1 Series -> STM32F103 -> STM32F103C 下 找到点击,然后OK。 # P/ z E+ \6 I) c2 Y 没有的话,先不新建工程,先在keil主面板上点击打开pack installer: }* E6 L# L A$ g0 K " n3 J( Z2 S, E ![]() 左侧 Device选项卡下搜索STM32F103,在出现的列表中选中STM32F103C8(根据自己的板子选)- A' E9 F" W) z( _3 m% j" h1 S 右侧packs选项卡中,列出了Device Specific中有两个Keil::....点击安装这两个包。装好后退出来重新新建工程就可以看到STMicroelectronics下自己的板子的包了。 & m' S7 t x( X( P) t4 y) @- _ ; ^5 e; I- d* K- M- X6 P 工程配置' G) X9 D- K" _1 O, h: i3 M 添加工程组和组文件0 X" \2 s- Y+ h- ]" Q8 X$ S& @4 G 8 g8 Q- g. t) z5 A ![]() 3 g4 o3 U) \6 `9 ]5 b x& G 在Groups中创建分组:' P7 v7 s$ x! p2 {1 Y+ |- r User 自己开发的程序代码 Deiver 管理STM32外设的驱动- q# M6 j2 z/ J! N CM3 管理CMSIS内核驱动 Startup 管理MDK开发环境下与芯片相对应的启动代码0 p6 _( L/ O6 c/ H - ~; w$ l C6 F- C 在Files中加入文件 b( d1 M4 h+ H; ?, }1 Z7 Y2 u, ^ USER:project中的main.c\stm32f10x_it.c Driver:Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件 CM3 ![]() Startup:Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s (这个目录下的一堆.s文件对应的是不同容量的芯片,stm32f103c8对应的是md后缀的), J- S& n- B- \) F 4 O/ r" ^6 @8 \' _" U; l 5 V$ L$ m1 A. p; @% a, `" r target选项配置! B/ f7 ~0 C6 u% L# L, d: A ![]() 1.Target选项卡中ARM Compiler选择版本5的编译器7 w# R1 ^3 i2 c( x6 Z- g 8 Z" i1 F- O7 t- v 2.Output选项卡将Create HEX File选上,output路径选择为刚才创建的output文件夹d/ s& q0 ?% \9 `/ H- e 3.C/C++(4C6)选项卡,在preprocessor Symbols的define中写两个宏定义: USE_STDPERIPH_DRIVER,STM32F10X_MD(中间是逗号),第一个宏定义是说使用固件库进行开发,第二个说的是芯片容量,分为LD,MD,HD,对于stm32f103c8来说是MD。! }* Y- F4 B/ {: x6 ~; g7 _2 N4 y 然后在include Path处,点击后面的三个点,把Libraries文件夹中的路径配上,分别为' i& _% |: ^# n8 ? " V ~' o3 ^3 j* r2 L Libraries\CMSIS\CM3\CoreSupport Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 5 m. K' e" E% G+ h9 N! E3 u! B& P Libraries\STM32F10x_StdPeriph_Driver\inc 7 W. {4 R' d+ Z4 c: @ Libraries\STM32F10x_StdPeriph_Driver\src s. l; B3 z' h( Y* t" I9 J5 a ! }, Y. x& O5 V+ a Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x" z" C; ?- Q6 q , I" n5 Y, `, _0 I- V1 w" a0 }3 ^0 ` ![]() 4. debug选项卡右上角的debugger选择为ST-Link Debugger 接线正确的话,插上stlink后点settings会在SW Device中出现stlink设备' h) Z+ G d) }4 T/ u ![]() 0 V K+ g f' Q( E u" K- w ![]() 测试 打开main.c文件只留空循环1 c# G& n# F) h) G/ {# { ( R8 Z. L/ k' ^# x ![]() ( V9 a* P3 X9 C. r7 _7 \ 运行程序7 { t8 ^: J" x9 G- x! B ; t5 \, ? ^; |2 {; Y ![]() ) n) j" ]/ q4 a* y( L 0error且生成了target就是正确的,否则排除error4 P2 h* } } k' w. G7 m ' i; ?5 C0 E' h 使用STlink烧录程序 stm32boot0置11 M8 B3 ?( Q* H; C1 e, m3 o* l, [" H8 W boot0是1的时候可以调试,0的时候程序运行 对应引脚连接 stm32-STlink* O& {' }) {1 P8 q4 [( C 3.3v-3.3v2 s* z( l: p# @ swio-gnd* X* ]" f: W. _' F % `* }+ T+ B; G3 \& y" L! P swclk-swdio3 T# h, ~; `* F) g6 u3 c7 D3 o, J gnd-swclk ———————————————— 版权声明:qqq2018 如有侵权请联系删除 ) V' s. C: F* j# ?1 g ) i9 q d5 p' m4 n! O6 H" e6 O " H( i- e! {7 |7 C; L; ?3 u7 f |