
下载st官方固件库 搜索并下载固件库 ![]() 使用固件库创建工程模版(以后不用每次配置了) 新建一个“工程模版”文件夹,里边新建三个文件夹6 ?, X) ^( o$ O 工程模板 |----Project 自己编写的代码把下载的库中的\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的4 J( |8 a7 _. O! m, U4 k2 I. c main.c: L+ { L0 q% U8 P$ } stm32f10x_conf.h, {) o6 { M3 X stm32f10x_it.c2 G N9 h+ E, Y! M stm32f10x_it.h 复制进来 |----Libraries 下载的库文件中的同名文件拷贝过来的 |----Output 存放编译完成后的机器码之类的 , G5 n/ T" d' m# W5 E ( J8 M/ F2 G3 ?1 Z: R 新建工程 然后打开keil5程序,Project -> New uvision Project... 目录选择为刚才新建的project目录,点保存会出现一个选择芯片的页面,选择所要用的芯片。 我所需芯片在STMicroelectronics -> STM32F1 Series -> STM32F103 -> STM32F103C 下 找到点击,然后OK。5 A# G, p% g/ ~; V7 g8 ` 没有的话,先不新建工程,先在keil主面板上点击打开pack installer 6 t! S* J. p9 F( c! {3 l- K ![]() 左侧 Device选项卡下搜索STM32F103,在出现的列表中选中STM32F103C8(根据自己的板子选)" Z$ o0 z5 s% s6 R D3 o+ p- U- r7 c ( N/ m) ^& J( o5 v5 I 右侧packs选项卡中,列出了Device Specific中有两个Keil::....点击安装这两个包。装好后退出来重新新建工程就可以看到STMicroelectronics下自己的板子的包了。. P5 ^3 s1 z7 Z 0 q5 N. }. h2 }2 Q 工程配置! g; m9 e N, E: j/ g- I7 V' l 添加工程组和组文件; S5 p3 u, f6 J. i; g5 Z0 ^ ![]() 在Groups中创建分组: User 自己开发的程序代码7 |( w( A1 w' F5 T! r Deiver 管理STM32外设的驱动 CM3 管理CMSIS内核驱动 Startup 管理MDK开发环境下与芯片相对应的启动代码) ^2 |% z9 k( _/ X" `' t9 d5 c) V 在Files中加入文件 USER:project中的main.c\stm32f10x_it.c Driver:Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件% O7 U, h' A$ s# G- w CM3 ![]() Startup:Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s (这个目录下的一堆.s文件对应的是不同容量的芯片,stm32f103c8对应的是md后缀的)9 w5 T) m) B' S; _# \+ N target选项配置 ![]() 9 ]* V# c, D* Y7 ~ 1.Target选项卡中ARM Compiler选择版本5的编译器5 |! B; g6 Y9 Q# I& M+ P 2 l9 |2 ~1 Y! o( E" a; g% W% D 2.Output选项卡将Create HEX File选上,output路径选择为刚才创建的output文件夹d 3.C/C++(4C6)选项卡,在preprocessor Symbols的define中写两个宏定义:' w9 H' M8 ~! w; w* u9 e USE_STDPERIPH_DRIVER,STM32F10X_MD(中间是逗号),第一个宏定义是说使用固件库进行开发,第二个说的是芯片容量,分为LD,MD,HD,对于stm32f103c8来说是MD。 然后在include Path处,点击后面的三个点,把Libraries文件夹中的路径配上,分别为 ' X9 ?/ r8 p w" G P6 b Libraries\CMSIS\CM3\CoreSupport2 b: y2 o M8 ` 6 O: T% d3 M/ C) J Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm% d, s9 E) w5 ?$ y Libraries\STM32F10x_StdPeriph_Driver\inc Libraries\STM32F10x_StdPeriph_Driver\src8 t- |5 \8 F F, \ A9 d# i7 b Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x' z2 K7 A2 Z" h+ T3 d$ Y2 s( S 8 }/ n# x j" x/ g) t9 P" W ![]() / I( [: ]) [" d1 _9 n( b 4. debug选项卡右上角的debugger选择为ST-Link Debugger4 e0 l" ?* B' t) w( B W $ y! B. I* B C% J6 k& D( v0 r 接线正确的话,插上stlink后点settings会在SW Device中出现stlink设备 ![]() ![]() 测试5 n8 `1 Y/ x- ^6 a' H, X3 k( r2 k 打开main.c文件只留空循环! ], a# n5 h; C6 n+ Y" R5 k ![]() 运行程序 ![]() 0error且生成了target就是正确的,否则排除error 使用STlink烧录程序+ }( j/ ^% V9 D. U7 o0 N stm32boot0置1" P! k: `7 l8 Y" e+ C Y, e boot0是1的时候可以调试,0的时候程序运行 - N0 v+ x2 j0 B, @9 p" Y 对应引脚连接 stm32-STlink 3.3v-3.3v $ W$ j6 ]* G% P' H7 p8 ~# c& { swio-gnd swclk-swdio; f/ O# a9 A9 s; D% J4 W. k 7 ~2 O) c9 Z! p# ~ gnd-swclk ———————————————— 版权声明:qqq2018 m! n8 _+ w- \ | 如有侵权请联系删除5 e) D* }1 S/ v ) F! p' Y6 G) d! j |