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

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

[复制链接]
STMCU小助手 发布时间:2021-11-26 18:00
针对32开发,最理想的开发IDE还是keil,keil前几年被arm收购,对本家芯片的支持无疑是最好的。0 X1 n. [0 r9 R
下面介绍一下,keil环境下针对stm32开发环境的配置,软件的安装、破解这里不再赘述,不明白的可以百度。
. x( T/ D1 O, |
. K" e3 B% A1 d9 s, y3 ESTM32开发分为,寄存器版本开发还有库函数开发,依据库函数搭建的环境能运行寄存器版本例程,' K$ c3 n/ D( ~$ p
7 u1 K' q4 [# E
寄存器版本开发环境,不能运行库开发的例程。
* J6 }7 h+ w+ S3 L% l7 h) b! p! s/ |
3 F! S+ g, ^8 X; x7 _; G工作中为了方便代码移植,建议选择搭建库环境作为开发环境。6 R  ~/ D4 P" r% P) R
下面介绍一下模板工程创建,工程创建完毕每个工程均可以在此基础上进行开发,( J  a* n! y0 N$ h$ I2 c* w1 u

7 f. I5 o7 B$ J0 Z5 m第一步:下载官方库 stm32固件库V3.5 里面包含官方固件库源码,还有官方参考板的参考例程。1 L8 b3 D& g( S8 A% b' T

1 {4 r$ i/ n9 z: r( W对于开发环境搭建而言,我们主要关注其中固件库源码以及针对32单片机的启动代码、中断管理等文件。1 c# l  |5 r# o

) }% m! b0 X8 T; a固件库
, G( p' r/ v8 `( o% Z* f9 e) Y# N% p) X& K% e7 X' B5 d  D# [
TX1_3(4V4~YR`6_EL1@LY0C.png
; `, G, C' O+ C
0 X' f( `. X; V# f+ C& y
解压后查看文件列表/ |+ \  W  a1 H  N. ~. s- Q" s
$ E0 P; J* P! E
20171016093854625.png

$ h" Y# w6 Z5 N( \# o0 G2 _3 a
; J) z0 s2 v' B6 O  D4 w那么我们新建自己的工程模板。
/ j! t/ P  k) l; G, ^- b9 b) l% T# C( M( f& O! e
首先新建个文件夹,命名依据自己的喜好  j* a; K3 O8 A; C
3 F; |: C: H  V+ M
20171016094504088.png
$ F: ]$ {+ Z& C( p% ^7 I4 ]
" M, x* I. p" W& f2 r
这里我命名为 STM32Project + I# m  Z& B9 a2 X0 a
在文件夹内部新建四个文件夹
) F+ q# r' m  D1 ]- B, e$ V
0 a$ _' j6 O* @
20171016094814269.png
9 P, n" w# d; k) ?5 \: o2 w* f
' |- H) @2 C: C1 ~& F1 T! Y1 M/ H
第一个文件夹ASM存放与单片机相关的汇编文件,里面是与单片机启动相关的内容; j+ ]/ L. V+ X  }& Q0 J  i0 r
2 o7 Z- f( I& C* Q2 k0 @0 ]
STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
/ c7 f9 L9 u7 m2 k
20171016095530755.png

0 P2 ~) E3 P; F! ?
# |$ b4 m& i9 n, @* Y' s% }3 r' {这个根据自己单片机的情况选择,选择方式通过后缀,一般md中等容量,hd大容量··· ···主要依据容量区分。也可以全部复制到ASM文件夹
0 R+ M& R8 J& @& A" J- L: Y
2 F: N7 h8 S0 X, a0 M在创建工程时在工程内部进行选择。这里我们全部复制过去。
3 r/ ~- C) b8 T' P) P+ Y$ X6 t* v! }% ^6 S; U
第二个文件夹内部LIB内部存放固件库源码与头文件" \" m$ A+ c. ^9 s+ Q: N8 T
, @+ p5 }% A  R2 h/ z' d
源码头文件的位置在  STM32最新固件库v3.5\Libraries\STM32F10x_StdPeriph_Driver 路径下 将src inc两个文件夹复制到LIB文件夹下0 ~2 R6 U% n, U' |; Q
! z* d2 \5 v7 k0 f6 c* }
第三个文件夹 System 存放与内核相关或者中断入口定义等相关的文件,还有一些重要的头文件
* l& T  Y" [- i- ]- \  d( {/ A- k& }
' J! }3 U$ e" A
20171016100220131.png

: Y6 R5 l8 K# A8 m  b0 g7 |+ z- a$ B: e" d+ \) N3 D1 Y
这些文件在
  h9 [$ Q, \8 g1 z7 ~- n2 NSTM32最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport7 d2 l, P& V, \3 Q4 Q6 B

3 e, W' G6 a8 U3 s' U. WSTM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
: e* W! Z. {) ?7 S& |# k
: S6 ]( d! v5 `; n, S1 _STM32最新固件库v3.5\Project\STM32F10x_StdPeriph_Template5 g$ T& y1 a8 V
路径下可以找到
; }4 u# i- c% o进行到这里工程所需要的文件已经准备齐全,接下来就进行工程的软件配置,打开keil(我用的是5版本的)
  A1 d2 r) d% d1 R
! _! h0 e/ [  Y, ]& Q
20171016100806062.png
3 G5 R6 M) _2 L, B0 \

7 Z& c, J/ b- u$ m点击新建工程,选择路径刚刚新建的工程文件夹,我新建的工程文件夹叫STM32Project。文件名就是工程名称,这里; N3 P# i% K; l+ [- z* W" ?

. f8 ^2 d% L* f! S4 `" H- E我填写的名称与文件夹名称相同STM32Project
' U' Z  S( N5 X4 E( t
# x+ O8 v9 D# ?# h, C
20171016101020601.png

. t7 [$ G: O" x0 X, H, A( m) N
点击保存后出现芯片选择界面,这里我选择的型号是STM32F103VE  大家可根据自己实际芯片进行选择。' N) f& G7 \3 m# e* D% k* p

. E. s$ {. R- [6 Q9 X$ }
20171016101336723.png
/ p' ^/ g' `6 h

$ U  z- Z/ f( `3 `; C点击OK 下面还会弹出一个窗口,这是自动配置相关内容,我们这里直接点击ok,不进行选择任何东西,稍后进行手动工程配置: ]$ A" K7 f% `- r- w) W" g8 _0 o
6 Q9 _. v) q/ R) K* t4 ~( R, c
20171016101521762.png

9 J) ?5 n) h: \4 P
+ [" F' d$ f! {2 s# I点击项目目录规划按钮,进行工程目录配置,让工程开发条理清晰
9 N$ x; t3 g! p5 ]0 @/ D4 [* y% U$ j* L# y$ L1 P3 }
20171016102918530.png

9 |& L' _4 S6 y0 v' b9 O' l8 ^( ?+ q9 B$ _" e, T, v
处理方式与建工程文件夹下的内容基本一致,需要向其中添加一些文件: t2 A6 y3 |. j. X8 h
6 a. Z, k" {7 C6 L+ j5 j4 ~
20171016102240242.png
+ ~! S' b* x3 @" ]/ s! }4 T/ [
$ F' P6 K$ T# b) Z- {* S- J
添加完成后点击OK
+ J4 l3 C) D: D) H$ d: U$ U: m2 {5 }  {" @" @; \; [6 L# p$ H/ ^
20171016102320395.png
5 C+ Q7 M. A9 y3 g2 i) ?
5 o0 s! x" [- q& I' q  d; i
工程预览如下,ASM文件夹依据我使用的芯片,选择xxxxhd.s,LIB文件夹选择最基本的中断管理、IO操作、时钟配置三个源文件
' r; Y- C+ N) Q: T! U+ j9 ^# C0 e0 z& p9 }$ x' U
(例如ADC 串口等没有添加,可根据开发情况选择性添加),这三个文件因为每个工程都会用到,所以添加了这三个文件。$ J0 {; w/ f$ C; M& w3 V* R

/ X, a7 R4 B4 p# TSystem目录将所有.c文件添加进来即可。也可以将所有文件包含进来(.h)。方便工程配置。
% ]2 w7 S% o' N
6 i0 A9 h) x3 Y, i1 {, y7 k! s接下来进行工程软件配置,点击目标配置按钮
$ G  m/ I; E3 ?& t! a6 I: h3 V8 H) O- |
3 M1 i4 G  J( h2 r
20171016101729144.png
/ a5 Q( z3 I  \9 R$ t6 U

* I" X/ [" _& H1 E" g# c在output选项中,如果采用串口下载勾选生成Hex文件选项,如果采用ST-Link下载不用勾选. ?0 Q4 u+ P9 t! R% v
* z1 _  e$ y2 Z
20171016103120217.png

# {. l+ B  \8 Y+ k! A& `: A  k! e
# `" M! G3 B9 D& S0 B& M在c/c++选项中,需要做两项工作,1、配置宏(宏第一个内容根据单片机容量进行填写),2、选择头文件的路径,点击保存
$ r, v* Q* U& }5 E- @9 G% G# W5 c9 r; m+ I8 h4 J' U3 ?
20171016103500379.png

" i; u! f! J- V& ?6 D& a, N" o
- n7 f) E# ]; A& S在Debug选项中,选择调试工具STLink 或者JLink等等,点击旁边setting按钮勾选Flash Download选项中的Rest ang Run选项,点击保存: W& b; }. G0 p3 M7 N9 B7 e
5 a* F; Q9 I/ n) @+ v# E& w  ^
20171016103843235.png
' l$ b7 m. n/ A, m

7 i& @, ?& I7 t+ O* k在Utilities选项中去掉调试之前更新目标选项,点击ok
# b8 z4 T$ v; D& K; n/ ^. P8 C7 J6 r/ g. v
20171016104122357.png
% {* \1 u5 A: i% f3 M

$ o# |0 o* L, T2 C工程配置完毕,验证一下工程配置。# g5 v/ I8 t$ p2 o/ @4 @

# B6 w; R; i4 @" K1 X点击file,新建文件保存在工程目录下USR目录,命名main.c,在目录树USR目录分组双击添加main.c文件,将main.c包含进工程8 f6 Q0 U+ Z5 @7 j
! B8 v2 w0 V! @+ l7 H2 s8 h8 x
在mian.c写入实验内容,编译进行验证。4 v+ |/ ^2 O4 U
7 O) |. q( F4 L3 Q1 _+ K0 Z
20171016105923107.png
( j6 M: W+ M! Y

) b& i! J& E( S输出0 错误 0警告工程搭建没问题, a/ {3 o1 e0 J! d' q1 b
采用库函数开发时,最好是用到那部分内容就将哪部分内容添加到工程,例如用到adc就把adc.c添加到工程,不用全部添加,固件库模块声明在stm32飞0x_conf.h中4 m; ^9 p' w- `
% o7 E$ d  i; A  s
没有用到的部分可以注释掉,这样在变异程序时可以加快编译效率。
1 C3 v. [! x  W0 f8 Q' O1 E0 ~/ y0 A- ]( E4 c6 `. |

* s4 I* E' s4 w' n. I5 ?5 V* p; J" @4 p  u
收藏 评论0 发布时间:2021-11-26 18:00

举报

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