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

【经验分享】stm32f10x在keil环境下的配置

[复制链接]
STMCU小助手 发布时间:2021-11-26 18:00
针对32开发,最理想的开发IDE还是keil,keil前几年被arm收购,对本家芯片的支持无疑是最好的。+ \. ~- x$ ~+ J' W, L. u1 D/ f: j, r
下面介绍一下,keil环境下针对stm32开发环境的配置,软件的安装、破解这里不再赘述,不明白的可以百度。2 }# k2 u; U+ p
* {7 N2 p  ?0 ]$ @0 q$ r
STM32开发分为,寄存器版本开发还有库函数开发,依据库函数搭建的环境能运行寄存器版本例程,
( Y/ s% ~' G$ A* t& ?( W5 M
0 w: B6 q2 j% Y寄存器版本开发环境,不能运行库开发的例程。! b8 M( F0 t4 p' U: A

9 O% {6 g1 J( `! X# W7 C- D工作中为了方便代码移植,建议选择搭建库环境作为开发环境。
$ K* W6 j( W) h+ j# z下面介绍一下模板工程创建,工程创建完毕每个工程均可以在此基础上进行开发,
9 A* r) l0 ]* W$ [4 U! p; [2 k- [. I2 T& A8 G" `9 P3 ^
第一步:下载官方库 stm32固件库V3.5 里面包含官方固件库源码,还有官方参考板的参考例程。0 |& D$ L: K% x2 e8 X0 O, I( Q3 p
0 s$ y* ~9 c$ l
对于开发环境搭建而言,我们主要关注其中固件库源码以及针对32单片机的启动代码、中断管理等文件。! v6 V' k0 k! M$ X+ F

& B% e* D* }1 k, }, p固件库6 O7 g, u& ^( Z! m$ V
$ \, I8 a" J  a( f1 y
TX1_3(4V4~YR`6_EL1@LY0C.png
' v" j) k& @  F. n. J+ B/ Q9 `

) r$ S/ {0 |8 e解压后查看文件列表7 Z1 r, p% t9 m" a& x" T& M

( @/ q6 S$ E3 Z
20171016093854625.png
8 J3 u3 y) ]6 ~

, R& X9 H! o1 O5 I6 ~9 C那么我们新建自己的工程模板。
/ J% G' }5 O+ o3 I1 Q6 P) e3 s: S8 d- o3 p2 {
首先新建个文件夹,命名依据自己的喜好0 u/ [6 _: H2 t$ o: f) U
8 I5 W2 V: E; R) D8 O, ^
20171016094504088.png
( U$ n1 i: I* g* `0 f, d9 z7 E9 N
5 K& u  X+ @9 i+ d
这里我命名为 STM32Project 6 e+ j$ X( @/ G- X( L4 I# X" B8 i8 Q; u
在文件夹内部新建四个文件夹4 s+ q+ V' G7 g) a/ }$ ]. z" B7 u  _
( N# D- \6 Q4 S$ G
20171016094814269.png
& e8 ?: y1 _$ V2 L/ ^& [) N  C& i
. J2 a* m# j! W" {; b% F
第一个文件夹ASM存放与单片机相关的汇编文件,里面是与单片机启动相关的内容) G* @; V: B4 n( Z2 f" m' L8 a9 b

6 {( ^8 L. R9 x' ^STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
- L4 {. [  i1 K# I3 W
20171016095530755.png
. d9 B" }  z3 \3 U

6 e5 L7 _* F: B3 h, \5 S3 L* M: W" D这个根据自己单片机的情况选择,选择方式通过后缀,一般md中等容量,hd大容量··· ···主要依据容量区分。也可以全部复制到ASM文件夹
$ i' x8 p/ k0 k1 p9 b( G
5 A7 f2 x1 K; S. m' t+ @! i在创建工程时在工程内部进行选择。这里我们全部复制过去。1 j# H9 v) H2 j. c+ x

; h; N, Q5 j+ w( ]* w% j! G* r第二个文件夹内部LIB内部存放固件库源码与头文件/ Z6 Y8 W+ i) c

- d+ a. D/ T7 N源码头文件的位置在  STM32最新固件库v3.5\Libraries\STM32F10x_StdPeriph_Driver 路径下 将src inc两个文件夹复制到LIB文件夹下
% f3 s6 n( q; [0 q1 M' C8 f# r! ~- X. c# N
第三个文件夹 System 存放与内核相关或者中断入口定义等相关的文件,还有一些重要的头文件" S% g6 ]: g9 m
$ @6 I; A1 T6 N0 q- G: C
20171016100220131.png
& J) r) W' ?5 W" e2 O
8 ]! [+ d' {5 F2 K' _% u( v0 [5 s  M
这些文件在
7 S, ^2 j+ K1 S3 ^6 {- iSTM32最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport( K- \( I- ~; {# H6 n
  [) K- [; H# t+ e: i1 r
STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
% j" r3 m2 J4 L! \9 Z: A# B
# `7 g7 s: `# ~/ ?1 O) QSTM32最新固件库v3.5\Project\STM32F10x_StdPeriph_Template
; s7 e* L6 D4 x* d4 d5 c' r路径下可以找到% D3 l, C- E  Q
进行到这里工程所需要的文件已经准备齐全,接下来就进行工程的软件配置,打开keil(我用的是5版本的)
! ^( m5 |3 a6 w1 R$ _
, A9 l) W) y' g. F, N6 T7 B
20171016100806062.png

0 k+ {& i3 ]! L$ a1 E
" B) E5 b" y1 Z1 k1 e点击新建工程,选择路径刚刚新建的工程文件夹,我新建的工程文件夹叫STM32Project。文件名就是工程名称,这里
3 ]" W6 Y- y" E& a- e- ?( ?! W- [) P
& b+ f7 O. M$ y. S我填写的名称与文件夹名称相同STM32Project
: P! u  `4 C5 O! u  h0 z% @! s/ A0 q# Z. P5 o0 L
20171016101020601.png

, O2 f" X8 Q" \
  r- Q. a+ M  A. y/ ~) ]& l- _, ?点击保存后出现芯片选择界面,这里我选择的型号是STM32F103VE  大家可根据自己实际芯片进行选择。% ^% ]8 |0 `1 s; q0 z/ l8 Y2 `; a

( C9 h8 I" D! c2 {
20171016101336723.png
: x3 l& Z3 z$ [3 _" W0 W! g

. W% w6 U! ~; a( E8 S点击OK 下面还会弹出一个窗口,这是自动配置相关内容,我们这里直接点击ok,不进行选择任何东西,稍后进行手动工程配置" A$ C/ F5 d- T8 |' [
; \4 _, `9 q3 J  e7 Q
20171016101521762.png
; ^- M8 p* w8 N5 }
8 x) O. k  O0 E- E
点击项目目录规划按钮,进行工程目录配置,让工程开发条理清晰
6 e3 e7 x) \9 s- o; \
% V0 }2 G  l$ }9 k) J
20171016102918530.png
/ v# y. U. C, c. z# q9 ~7 n

7 I+ B5 |% }/ T8 l' s处理方式与建工程文件夹下的内容基本一致,需要向其中添加一些文件" ?0 H7 q  Z: g& l& J, [7 t

+ N3 ]8 o1 E& s9 b$ d# }
20171016102240242.png
/ B$ c6 ^; B/ I& J

4 L* o7 U' \$ D+ _添加完成后点击OK9 F4 Q8 i' Y2 w
8 R6 T0 ^4 h% N
20171016102320395.png
) t; o. Z7 ?; R* s: ?; V3 \
& C' L; O: t. V0 O6 C* ~
工程预览如下,ASM文件夹依据我使用的芯片,选择xxxxhd.s,LIB文件夹选择最基本的中断管理、IO操作、时钟配置三个源文件
+ N4 H% ]: u$ d4 s# x! H
) k0 O' |% |6 @! q(例如ADC 串口等没有添加,可根据开发情况选择性添加),这三个文件因为每个工程都会用到,所以添加了这三个文件。& o4 h$ b/ Y7 m/ x" H

: h- C  d, V/ f2 R+ s7 P% ASystem目录将所有.c文件添加进来即可。也可以将所有文件包含进来(.h)。方便工程配置。1 T$ x* H  p6 {
$ R- ~  [" R- R5 n+ m  `
接下来进行工程软件配置,点击目标配置按钮
3 s. Q( s3 N( h  J. w8 Q4 F) E& k
20171016101729144.png

7 g0 ^6 t- b  s" |6 K7 X3 s2 @
. N' Z) ?1 j' u+ a$ Q在output选项中,如果采用串口下载勾选生成Hex文件选项,如果采用ST-Link下载不用勾选$ Z. ^& X6 w& o

$ I# `* V* R' r% K) p' G0 s
20171016103120217.png
8 w" n9 ]* k* t9 R; G

2 j9 Q& J! m! b6 g7 m( E在c/c++选项中,需要做两项工作,1、配置宏(宏第一个内容根据单片机容量进行填写),2、选择头文件的路径,点击保存
1 C1 R% e1 p. ^* x! E3 P! U
) |1 V+ a4 a) S! _5 @
20171016103500379.png
7 p; `3 K% G. {; |- f  \& r/ H
/ ^1 G& a! ~* P
在Debug选项中,选择调试工具STLink 或者JLink等等,点击旁边setting按钮勾选Flash Download选项中的Rest ang Run选项,点击保存
5 I3 L% ~, [) C$ {9 f$ Q1 Y) r  t6 \# |  D& \% |$ u: _7 R
20171016103843235.png
2 B1 T" C/ r: j( }  B8 b, N
7 e# K9 t' k3 A7 z2 `  m% p
在Utilities选项中去掉调试之前更新目标选项,点击ok: e/ S, J) d$ l: u; c

9 P9 n; _1 ]# l6 X( Y
20171016104122357.png
2 k) [$ N" Y+ r& v; A

% l! S+ a% k% |2 C2 D工程配置完毕,验证一下工程配置。
1 d. ^$ U" n, u1 k; {: a  ]
& k* p4 ?: L# g' h点击file,新建文件保存在工程目录下USR目录,命名main.c,在目录树USR目录分组双击添加main.c文件,将main.c包含进工程
+ ~, R) g$ b- \; U4 J# F9 d; s4 t" T6 I+ P  Q. G  |5 j
在mian.c写入实验内容,编译进行验证。
! {9 S. v6 O; v( ~9 C7 r+ `. }! o" R# y6 A  S6 [# d0 H: b: c
20171016105923107.png

$ _7 O( Y" p5 {4 j* W$ ~5 d9 g3 J. \; x: G1 ~4 C9 S: u" N
输出0 错误 0警告工程搭建没问题
5 ~9 M4 E' a0 I' u  L! X采用库函数开发时,最好是用到那部分内容就将哪部分内容添加到工程,例如用到adc就把adc.c添加到工程,不用全部添加,固件库模块声明在stm32飞0x_conf.h中& H8 ]' ^9 ^% x9 r6 O
' h( w% Y6 L0 j" q
没有用到的部分可以注释掉,这样在变异程序时可以加快编译效率。, o% k( p7 Z% d

; h; N# ^2 E8 N  Z+ Q+ y) s+ i0 X* s0 G0 U2 ]) N

' c  w& v# R7 S, e: W- Z
收藏 评论0 发布时间:2021-11-26 18:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版