你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32F103C8的keil环境配置和STlink烧录经验分享

[复制链接]
攻城狮Melo 发布时间:2023-3-21 21:25
下载st官方固件库
' d5 Q3 f" F, ]9 G8 b  o搜索并下载固件库
' w8 O4 ~; X$ N7 G+ l/ k4 R- g
9 `7 K! ?. m9 d8 P" ~2 M
2b947363f5c741cd89ffb5caad3b3f16.png 1 `7 ?/ [" r* [* O/ }+ `

: ?1 X. n. t5 z1 t) A  J9 S- w  J8 \: G使用固件库创建工程模版(以后不用每次配置了)
  w# C% T- i' e! S( U新建一个“工程模版”文件夹,里边新建三个文件夹6 ?, X) ^( o$ O

3 N7 s7 S# K/ [8 O% @; i/ g& x工程模板
/ V) s. y% r) ~( e|----Project        自己编写的代码把下载的库中的\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的4 J( |8 a7 _. O! m, U4 k2 I. c

$ k5 t  I  A4 [. wmain.c: L+ {  L0 q% U8 P$ }
stm32f10x_conf.h, {) o6 {  M3 X
stm32f10x_it.c2 G  N9 h+ E, Y! M
stm32f10x_it.h
4 K. t0 |( ^" \7 U' h: C( a& Q复制进来
0 r; |$ \6 ^# y8 A1 H. M( c) u|----Libraries      下载的库文件中的同名文件拷贝过来的
, |' |$ V: p9 B6 k|----Output        存放编译完成后的机器码之类的
2 |7 x; `0 p4 Z" C5 O+ v, G5 n/ T" d' m# W5 E
( J8 M/ F2 G3 ?1 Z: R
新建工程
/ R2 V6 [. K5 b/ U% J5 b. X9 o. |然后打开keil5程序,Project -> New uvision Project...
  _! Q/ V: D  ]  U3 j& f  V
, G- O7 S4 @/ d- [% G& c$ t7 c目录选择为刚才新建的project目录,点保存会出现一个选择芯片的页面,选择所要用的芯片。
- \' k# n7 U, v我所需芯片在STMicroelectronics -> STM32F1 Series -> STM32F103 -> STM32F103C 下
$ m$ I3 N0 y; g( _8 }找到点击,然后OK。5 A# G, p% g/ ~; V7 g8 `

8 G9 v& h. v( Z% t. }没有的话,先不新建工程,先在keil主面板上点击打开pack installer
% v4 C9 b  k2 [* i6 t! S* J. p9 F( c! {3 l- K
b2b43ed37ce242e798787d00c84ebac4.png / R& s: Z+ W# u. v8 v  ]6 {! e1 L  a

3 o8 F9 M3 h, [" L: U2 T3 Q7 A左侧 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

: x) v) i1 Z  F0 O6 q工程配置! g; m9 e  N, E: j/ g- I7 V' l
添加工程组和组文件; S5 p3 u, f6 J. i; g5 Z0 ^

1 b' O5 ]  g1 y
cc0299c0f54b44338857628da4608405.png ) u. X9 L: m9 v1 R2 b

1 a; r4 v  ?0 S* ~. B在Groups中创建分组:
# W, J& A- X/ ~( z. D- g" G  GUser            自己开发的程序代码7 |( w( A1 w' F5 T! r
Deiver         管理STM32外设的驱动
8 z, H8 O, A5 c' y- uCM3            管理CMSIS内核驱动
0 v( P* e0 V: z: I9 n& eStartup       管理MDK开发环境下与芯片相对应的启动代码) ^2 |% z9 k( _/ X" `' t9 d5 c) V

8 U6 o: }( K. c3 @- x; Q在Files中加入文件
5 B) s3 J6 i5 e% T  O. ?USER:project中的main.c\stm32f10x_it.c
& W, D4 n& ~# }. V6 C3 g! l$ SDriver:Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件% O7 U, h' A$ s# G- w
CM3ibraries\CMSIS\CM3\CoreSupport 下的core_cm3.c" b' P3 X) \# {+ t" w
Startup:Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
1 A! }! w" d" b$ S: Q(这个目录下的一堆.s文件对应的是不同容量的芯片,stm32f103c8对应的是md后缀的)9 w5 T) m) B' S; _# \+ N

2 W2 B& b( h0 l

# @  u8 A& l- N0 F4 btarget选项配置
8 R7 v7 h- b# V2 P. n
$ W& t- m9 g% p' Z! ^+ [
478cf894d9d74d0e943dcd4d954855b4.png - K8 x3 O2 }! R: j, L
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
& |1 J: \+ B5 {% w- I) m  j
! l) g  y; u4 o0 O, _- c3.C/C++(4C6)选项卡,在preprocessor Symbols的define中写两个宏定义:' w9 H' M8 ~! w; w* u9 e

, O/ N4 _. q1 W0 L% _- \USE_STDPERIPH_DRIVER,STM32F10X_MD(中间是逗号),第一个宏定义是说使用固件库进行开发,第二个说的是芯片容量,分为LD,MD,HD,对于stm32f103c8来说是MD。
1 {! p& [1 i9 e2 A

2 O" r7 m0 H& m然后在include Path处,点击后面的三个点,把Libraries文件夹中的路径配上,分别为
2 H; B- `6 g# s6 r; T8 y% i' 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

7 t& u! x' z& d* S3 GLibraries\STM32F10x_StdPeriph_Driver\inc
# G! h, F3 P* V1 C+ u* @

4 H; M5 `3 I- k0 ~# K  gLibraries\STM32F10x_StdPeriph_Driver\src8 t- |5 \8 F  F, \  A9 d# i7 b

: D6 l9 s) W/ ]  E. p/ r& XLibraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x' z2 K7 A2 Z" h+ T3 d$ Y2 s( S
8 }/ n# x  j" x/ g) t9 P" W
05596f1ec42b489eb82573a903b465ce.png ! H8 F1 s! h6 ?/ ^# z5 U! o' d
/ I( [: ]) [" d1 _9 n( b

( ~: H9 t, c5 W4. 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设备
0 |5 [5 Z  r# _1 E! a
$ {3 j6 `9 [  g
20210108212908398.png
$ W/ L- t9 N# t) Q
/ S/ n  E2 d6 v8 q" }6 c
20210108213152680.png + a! \2 U) B% f! E! Q& c" B5 E

5 w2 Z' u1 I1 m* w! a/ X; o测试5 n8 `1 Y/ x- ^6 a' H, X3 k( r2 k
打开main.c文件只留空循环! ], a# n5 h; C6 n+ Y" R5 k

. t+ U( L+ m/ G9 Q# `- {
d2da0988a3324454954b267323127602.png ) K) {% K1 o! P" m! q0 Z

5 v* W2 e7 p. E$ V 运行程序
: ?2 D3 j4 t' `( G& ^
" d" V7 M* _2 B) f% e  ]1 Q
9d48307d9e2a41d2bcdb5b1b63bebd93.png * E2 X/ X+ P1 d# z/ L- T1 ~

0 T( ]. y( F: o' Y' X0error且生成了target就是正确的,否则排除error
& V3 ^4 T+ a2 V0 E
8 K9 @5 I! m- |" l% h. J( {8 H

9 \% y  `+ z  k* d8 c  x使用STlink烧录程序+ }( j/ ^% V9 D. U7 o0 N
stm32boot0置1
" P! k: `7 l8 Y" e+ C  Y, e
boot0是1的时候可以调试,0的时候程序运行
$ M' n, n% K" e1 g- N0 v+ x2 j0 B, @9 p" Y
对应引脚连接
& d4 a4 S: q- j# K, Kstm32-STlink
% w; s2 F/ w# F  X5 c% P4 I: T

3 p( z# l& a- c3.3v-3.3v
& r1 }7 G4 f- M& @
$ W$ j6 ]* G% P' H7 p8 ~# c& {
swio-gnd
/ n7 Y' W/ O* r4 `

9 R( m. f. D; T( I8 |$ r* eswclk-swdio; f/ O# a9 A9 s; D% J4 W. k
7 ~2 O) c9 Z! p# ~
gnd-swclk
" H) H# |; @: |; Y. C————————————————
% u+ q, [4 I8 \& Y版权声明:qqq2018  m! n8 _+ w- \  |
如有侵权请联系删除5 e) D* }1 S/ v
) F! p' Y6 G) d! j

. m) i* Q3 [& r. S" r
6 {1 r: }$ Y* _
收藏 评论0 发布时间:2023-3-21 21:25

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版