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

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

[复制链接]
攻城狮Melo 发布时间:2023-3-21 21:25
下载st官方固件库! G8 q% L1 O. s& f1 a4 q
搜索并下载固件库" U; Q6 X8 M) W! y
, u* [  X) p) b0 k' W5 G
2b947363f5c741cd89ffb5caad3b3f16.png
& ]' `7 r5 s  o  U9 G5 ?: d6 ~2 [7 q# t% Y  p; b* S4 y) L# P
使用固件库创建工程模版(以后不用每次配置了)! u( ?/ ]7 r. w' s5 n4 e
新建一个“工程模版”文件夹,里边新建三个文件夹
" d# d8 }( ^; A3 ]7 }) i0 U
* `# }' A/ }( {1 A$ Y. {工程模板; t: W- q$ f% D3 y
|----Project        自己编写的代码把下载的库中的\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的! z# p1 j0 R( j+ y3 ~9 ?

- l0 ?7 v: w9 l) qmain.c
$ o- K) f: D0 e; O" X. G2 ostm32f10x_conf.h
, [$ N; c' m. @6 t/ cstm32f10x_it.c
. q! C2 R* L- {4 K5 I5 R& c$ ?9 Zstm32f10x_it.h. X* J# D8 Y9 L0 B
复制进来
* g8 D8 N, j0 P5 w! i6 k( g1 q" ^' r|----Libraries      下载的库文件中的同名文件拷贝过来的/ u- a7 y3 J. r5 C" P
|----Output        存放编译完成后的机器码之类的
7 v/ Z- G5 o% A/ j9 B) k4 `( c$ ~# m+ L! m

1 \- ]" a3 V  J9 w新建工程
9 P1 z6 @1 K! G. }0 m( Y然后打开keil5程序,Project -> New uvision Project...
5 J  O" T) X7 K, z7 E( X( N% P. q
3 z0 @* F; ]* v+ O7 @' }. q目录选择为刚才新建的project目录,点保存会出现一个选择芯片的页面,选择所要用的芯片。
$ Z: f: m: B3 ]# w我所需芯片在STMicroelectronics -> STM32F1 Series -> STM32F103 -> STM32F103C 下
$ J; q2 `0 X# M9 t5 ]找到点击,然后OK。
$ _% ~) }; d5 g2 J- c
# P/ z  E+ \6 I) c2 Y
没有的话,先不新建工程,先在keil主面板上点击打开pack installer: }* E6 L# L  A$ g0 K
" n3 J( Z2 S, E
b2b43ed37ce242e798787d00c84ebac4.png 7 D  }1 v: Y6 Q- G! {& w" @

& j* K- [7 g% N# R左侧 Device选项卡下搜索STM32F103,在出现的列表中选中STM32F103C8(根据自己的板子选)- A' E9 F" W) z( _3 m% j" h1 S

. h' A* C( v) H* p) l$ X. ]& l右侧packs选项卡中,列出了Device Specific中有两个Keil::....点击安装这两个包。装好后退出来重新新建工程就可以看到STMicroelectronics下自己的板子的包了。
+ |4 h6 @( c& A% h2 s* q9 B0 a& 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
cc0299c0f54b44338857628da4608405.png 0 M( g  w6 v7 x' Y
3 g4 o3 U) \6 `9 ]5 b  x& G
在Groups中创建分组:' P7 v7 s$ x! p2 {1 Y+ |- r
User            自己开发的程序代码
3 B' Q9 U& J1 z; V. LDeiver         管理STM32外设的驱动- q# M6 j2 z/ J! N
CM3            管理CMSIS内核驱动
/ V3 Z. J# ]( a7 Z! e2 bStartup       管理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
" k. ^  B( J( S3 m6 b6 K5 i5 eDriver:Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件
. Z0 j" H5 i9 j3 [0 fCM3ibraries\CMSIS\CM3\CoreSupport 下的core_cm3.c7 N5 T8 b3 H  G# m  I: r
Startup:Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
9 {3 U$ E; A# s+ R# ^& z6 W(这个目录下的一堆.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

% j9 Q0 M( T3 D. J
478cf894d9d74d0e943dcd4d954855b4.png
: D( w# x* D6 e& \1 U2 s: O
4 d- W- o6 n; V" H+ P; e1.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

1 m% C5 V, u! p5 D3.C/C++(4C6)选项卡,在preprocessor Symbols的define中写两个宏定义:
& @$ r+ Q; S  h

/ Q6 g8 n/ e5 H9 e' UUSE_STDPERIPH_DRIVER,STM32F10X_MD(中间是逗号),第一个宏定义是说使用固件库进行开发,第二个说的是芯片容量,分为LD,MD,HD,对于stm32f103c8来说是MD。! }* Y- F4 B/ {: x6 ~; g7 _2 N4 y

. C5 Y* [" p+ d, Q& o然后在include Path处,点击后面的三个点,把Libraries文件夹中的路径配上,分别为' i& _% |: ^# n8 ?
" V  ~' o3 ^3 j* r2 L
Libraries\CMSIS\CM3\CoreSupport
* Z3 z8 i; O, W% p
' T' F4 p, M/ x# C* I! y$ C" GLibraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
. L9 y3 b5 A7 b8 G3 P4 J) _! D1 I+ Q
5 m. K' e" E% G+ h9 N! E3 u! B& P
Libraries\STM32F10x_StdPeriph_Driver\inc
9 j. A9 O: b0 I  [
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 `
05596f1ec42b489eb82573a903b465ce.png * [8 E# P& @+ F

" a( G6 D& \, W7 D. ^# G$ F

4 e3 \6 o" ~% C; O  F: ]* q" Z4. debug选项卡右上角的debugger选择为ST-Link Debugger
+ E( c8 ~' g+ l$ w# K

6 I. z: }& P+ W8 h接线正确的话,插上stlink后点settings会在SW Device中出现stlink设备' h) Z+ G  d) }4 T/ u

/ B8 [8 R! X! z( H5 a$ b
20210108212908398.png ; s% l4 ]5 ~- |. p/ H) a% ^8 R
0 V  K+ g  f' Q( E  u" K- w
20210108213152680.png ( F. R* I4 [+ i. W- s

2 {9 ^& g8 s! T7 f/ ]测试
, W5 F# A) S2 U4 l打开main.c文件只留空循环1 c# G& n# F) h) G/ {# {
( R8 Z. L/ k' ^# x
d2da0988a3324454954b267323127602.png " M- Y' b) o8 D) j) f1 r
( V9 a* P3 X9 C. r7 _7 \
运行程序7 {  t8 ^: J" x9 G- x! B
; t5 \, ?  ^; |2 {; Y
9d48307d9e2a41d2bcdb5b1b63bebd93.png . m$ a/ |1 K  c) I' F
) n) j" ]/ q4 a* y( L
0error且生成了target就是正确的,否则排除error4 P2 h* }  }  k' w. G7 m

1 v, o+ i% Z* E
' i; ?5 C0 E' h
使用STlink烧录程序
- `' f/ ]+ P0 A7 ~% O! Mstm32boot0置1
1 M8 B3 ?( Q* H; C1 e, m3 o* l, [" H8 W
boot0是1的时候可以调试,0的时候程序运行
5 j% h+ L, R1 `
: Q9 v% K+ k; }- v对应引脚连接
) o: v2 b2 ]" M1 \/ f- K9 Bstm32-STlink* O& {' }) {1 P8 q4 [( C

- o0 P3 u6 k5 U6 Y# y7 m5 c5 q3 @3.3v-3.3v2 s* z( l: p# @

" g) F* y; I( dswio-gnd* X* ]" f: W. _' F
% `* }+ T+ B; G3 \& y" L! P
swclk-swdio3 T# h, ~; `* F) g6 u3 c7 D3 o, J

4 M( \+ T: U& x8 @" e6 rgnd-swclk
8 M6 {, x: r) B* ]: F% E6 N/ V# t————————————————
6 _) z$ q- c5 z; v5 P3 y2 a版权声明:qqq2018
8 A+ L+ K4 s2 z9 \3 }4 f3 s如有侵权请联系删除
+ A$ s6 n+ F0 r2 P) 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
收藏 评论0 发布时间:2023-3-21 21:25

举报

0个回答

所属标签

相似分享

官网相关资源

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