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

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

[复制链接]
STMCU小助手 发布时间:2021-11-26 18:00
针对32开发,最理想的开发IDE还是keil,keil前几年被arm收购,对本家芯片的支持无疑是最好的。
8 a3 I7 ?8 L$ j4 z下面介绍一下,keil环境下针对stm32开发环境的配置,软件的安装、破解这里不再赘述,不明白的可以百度。
* a6 Z6 M6 p; u4 t/ K* T+ C$ t+ C8 j( L3 w7 C" C
STM32开发分为,寄存器版本开发还有库函数开发,依据库函数搭建的环境能运行寄存器版本例程,+ |! }* Q9 U1 G" R- g

. Y' a+ p& A) _& ~寄存器版本开发环境,不能运行库开发的例程。, `2 `' H  I7 ]' \1 N0 B

" `9 i/ g) Z- }6 i工作中为了方便代码移植,建议选择搭建库环境作为开发环境。
4 i3 x" k) Q4 ^  z9 _  G2 {9 v3 \下面介绍一下模板工程创建,工程创建完毕每个工程均可以在此基础上进行开发,
% F3 N4 [! L) z* G) J* _( s& U5 y0 C5 f0 D( w7 q% Y: }
第一步:下载官方库 stm32固件库V3.5 里面包含官方固件库源码,还有官方参考板的参考例程。3 z6 A- \! C, r1 h4 b
4 I2 ?1 o" R" y: l& V$ ]7 b
对于开发环境搭建而言,我们主要关注其中固件库源码以及针对32单片机的启动代码、中断管理等文件。3 b+ _# T. W9 B
5 F/ U' c( ^, h; c: d% G
固件库! y: h+ R! W* o: D& h6 G% K

7 o  w9 {; U5 A7 @- u
TX1_3(4V4~YR`6_EL1@LY0C.png
0 _. D/ y4 t/ h+ M7 C
1 ]" V" `- n3 U) ~  p8 H
解压后查看文件列表
/ d% `! z6 B$ W3 m/ M6 M2 [3 }9 I
7 p, E% y8 I# T5 [( M
20171016093854625.png

$ q: J7 g4 i% v7 R; w4 ~2 s6 x. ]# \3 h
那么我们新建自己的工程模板。4 H, ]( t* M% P, D4 Y* b

; K4 M4 v% L6 X  j9 H1 ?  D$ y首先新建个文件夹,命名依据自己的喜好4 C2 ^, ?; V7 M
! n5 D; T/ K' _2 B$ p3 g" U3 \+ N
20171016094504088.png
0 M* I4 \& ~, M  ^4 N7 D. e

4 t3 h0 n' {- F这里我命名为 STM32Project * m, {! v4 v; F& O( Z+ i" N& _$ H
在文件夹内部新建四个文件夹
, y- ~; l# P' I1 h+ m, P, V
" \1 G! _* n0 S& g" f
20171016094814269.png

& U) g9 y& |/ C2 [3 T0 ~& P5 L( ~# W( S3 m$ a  \$ e
第一个文件夹ASM存放与单片机相关的汇编文件,里面是与单片机启动相关的内容
6 c3 R  I! Y% K8 Y9 e* Q) |; i/ O3 l
STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
7 W2 E( d4 ?8 w+ L7 C" y
20171016095530755.png

3 a7 y$ r6 P7 o3 T- u; g/ A
+ A  x2 x+ u7 S* U8 p0 |这个根据自己单片机的情况选择,选择方式通过后缀,一般md中等容量,hd大容量··· ···主要依据容量区分。也可以全部复制到ASM文件夹* h- Z# F) `7 p9 ]6 t
. ~2 K- N( D9 X( T+ @6 l
在创建工程时在工程内部进行选择。这里我们全部复制过去。
! x1 k1 `) e) K0 k0 {* _
. ~3 Y# I8 ^7 f第二个文件夹内部LIB内部存放固件库源码与头文件" q+ w' T) Z' ]' m; `2 K4 O1 X

- g! ]  J& }: Z! {9 k! \3 r: u( g' H源码头文件的位置在  STM32最新固件库v3.5\Libraries\STM32F10x_StdPeriph_Driver 路径下 将src inc两个文件夹复制到LIB文件夹下" M4 ?4 U0 v- i2 [) z
0 W  [" i# s( X' G; j
第三个文件夹 System 存放与内核相关或者中断入口定义等相关的文件,还有一些重要的头文件
$ ~2 Q3 r/ u: G8 |" c/ i
* B( C4 [3 ]( ?3 l6 p( P/ e3 y5 o0 D
20171016100220131.png

* W9 W, B. f( {  V/ x+ {! Z" q
& k+ `$ `$ o! z: U7 Q; c% m4 j3 e这些文件在
8 l* I1 s/ |8 \7 W$ _; aSTM32最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport* {* X4 H+ D6 }7 j( O8 H

- G+ w: ~1 _1 W- |/ d& v) ESTM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x: W- D; U4 q. h: ?  i

9 Q2 [, l) {4 x6 d# W$ B6 {STM32最新固件库v3.5\Project\STM32F10x_StdPeriph_Template
+ @3 i+ o: I8 W: Y路径下可以找到6 z8 t/ O& Q' e
进行到这里工程所需要的文件已经准备齐全,接下来就进行工程的软件配置,打开keil(我用的是5版本的)  I! v8 b; u7 \' c8 O% `0 B- O" W

0 H' u; e' E& M# x* o7 V
20171016100806062.png

" @; ^7 r" z$ y& Y  x
# @  y. l  t, K" H2 W' e点击新建工程,选择路径刚刚新建的工程文件夹,我新建的工程文件夹叫STM32Project。文件名就是工程名称,这里2 X6 J# B# {9 M

  g& y+ Z! A- q/ p0 J我填写的名称与文件夹名称相同STM32Project
4 j4 R! O0 b6 E# s. f1 [
3 ?+ M0 d$ _2 W8 x2 @
20171016101020601.png
2 p* U: W$ J8 P

  q* \, i  ?4 Y7 X点击保存后出现芯片选择界面,这里我选择的型号是STM32F103VE  大家可根据自己实际芯片进行选择。
: E8 \% _/ }( ^- j
8 S9 _  D- }: g# P; f" m
20171016101336723.png

) m: y0 ~( i0 C" q/ {
) F5 k0 K- j9 A( @9 E2 ~$ x点击OK 下面还会弹出一个窗口,这是自动配置相关内容,我们这里直接点击ok,不进行选择任何东西,稍后进行手动工程配置/ G* i& A# ~0 |9 X

) }! y, J3 B8 q3 q  a, q
20171016101521762.png

# i& I+ o9 ~$ o* m& a: u  l' `) V( M/ M  N' J
点击项目目录规划按钮,进行工程目录配置,让工程开发条理清晰! \6 K) ]/ ~' M7 G3 ?: g% _6 \
  `+ o7 z+ J$ V2 T3 e$ y
20171016102918530.png
3 p  V6 y: \& }4 }8 B8 f7 W

0 U; X2 b  d. w/ j* }# B2 ^0 E' D- V处理方式与建工程文件夹下的内容基本一致,需要向其中添加一些文件4 {/ ~% S# N. k! ?" R" u4 i# W

" |7 v' o3 F+ P: Q- J; B
20171016102240242.png

: T, S- h. w* d7 J
3 n, X% B) }# v6 X' f添加完成后点击OK
* c) M9 I: l0 S8 b8 e' ^
/ h+ G" i  S: {4 f% R
20171016102320395.png
4 a% U! M$ w" O2 g

3 s$ N9 S. M9 n( f; K工程预览如下,ASM文件夹依据我使用的芯片,选择xxxxhd.s,LIB文件夹选择最基本的中断管理、IO操作、时钟配置三个源文件+ W; y" U) h( G

0 |9 a5 w9 }$ }& i# n0 H(例如ADC 串口等没有添加,可根据开发情况选择性添加),这三个文件因为每个工程都会用到,所以添加了这三个文件。
( j5 X) B6 o/ y& b* P
! C/ S1 Q" x0 }& u5 A3 ZSystem目录将所有.c文件添加进来即可。也可以将所有文件包含进来(.h)。方便工程配置。
, R! `% k& }9 Y5 L7 B) L6 e+ R+ h2 Y
接下来进行工程软件配置,点击目标配置按钮  m6 p' w) _' Y/ e, z

& Y) R" D1 ~( R/ S* [; o' W7 |
20171016101729144.png
0 [& C9 j- A7 e) r
5 X+ a( T& S5 ?# ]: D
在output选项中,如果采用串口下载勾选生成Hex文件选项,如果采用ST-Link下载不用勾选' O: I3 |; `: v* H8 T+ w/ p9 \* n
8 O. Q6 A2 w$ I" T7 b
20171016103120217.png
$ ^: ?- A& e, v8 `$ ]. ?4 o
0 O% Q# s( J8 a, B# K3 z! b1 F
在c/c++选项中,需要做两项工作,1、配置宏(宏第一个内容根据单片机容量进行填写),2、选择头文件的路径,点击保存
1 f; h# z3 Q, N
& J$ u( i6 A2 M0 a
20171016103500379.png

: e: ^/ R% {2 U( |+ G" x* [+ t7 V. Z
0 I5 d4 ^9 T7 k8 f. c+ E: P在Debug选项中,选择调试工具STLink 或者JLink等等,点击旁边setting按钮勾选Flash Download选项中的Rest ang Run选项,点击保存
6 B" F7 F, N, ?; W4 T
9 c6 K/ J" F; m0 [+ _
20171016103843235.png
) {  J- d* v7 v0 Q0 D/ O' W2 V

) M/ n. D2 M0 y+ {( t6 p. u$ Z1 n在Utilities选项中去掉调试之前更新目标选项,点击ok
' n' w; o3 ~5 `( [' p4 L; P
, L0 Y0 P. m$ C5 A' \" G
20171016104122357.png
7 W1 Q2 n8 s; _, J1 G

: h! u( p  l3 `$ z工程配置完毕,验证一下工程配置。
9 D+ y6 f% B9 X+ \* _( K- Z: ^: M
  `  m9 t) ?) \4 Y# u3 ~点击file,新建文件保存在工程目录下USR目录,命名main.c,在目录树USR目录分组双击添加main.c文件,将main.c包含进工程: l- F- ^  c& a+ u# d9 `/ p
% p5 T' u" a) f. H
在mian.c写入实验内容,编译进行验证。" U9 t3 [, f# x" }

: x5 l4 X9 Z# ~6 |- Q9 [
20171016105923107.png

) g; u2 `9 u  ?) w; s: N7 g6 S/ S
9 S! c2 o' K- h8 k; ~# F9 V8 a8 E0 h输出0 错误 0警告工程搭建没问题* A+ P/ n7 ?. y9 c1 s
采用库函数开发时,最好是用到那部分内容就将哪部分内容添加到工程,例如用到adc就把adc.c添加到工程,不用全部添加,固件库模块声明在stm32飞0x_conf.h中/ u$ p9 _4 R5 `8 @1 P% }
! ^, s: d: i( w' E: {. P* r
没有用到的部分可以注释掉,这样在变异程序时可以加快编译效率。
6 l8 i' S$ R! m+ T, h3 O( M; g* N( w* P. X6 Y! f
% S7 l& C4 G% x# Q1 x
. i# H6 A2 T5 A4 f
收藏 评论0 发布时间:2021-11-26 18:00

举报

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