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

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

[复制链接]
STMCU小助手 发布时间:2021-11-26 18:00
针对32开发,最理想的开发IDE还是keil,keil前几年被arm收购,对本家芯片的支持无疑是最好的。
1 R+ ]9 H, V% g' ^  e+ _下面介绍一下,keil环境下针对stm32开发环境的配置,软件的安装、破解这里不再赘述,不明白的可以百度。. Q" K- l' |9 H# X( `% [
5 g0 D' p' @4 C7 t2 F/ T4 @
STM32开发分为,寄存器版本开发还有库函数开发,依据库函数搭建的环境能运行寄存器版本例程,
6 K2 G& z' x! }) b
4 i2 _8 W; ?1 q( ~1 Z( K. [. K寄存器版本开发环境,不能运行库开发的例程。; A# [) F$ z0 a
% _$ ?  m/ d% k/ w! v7 a$ _
工作中为了方便代码移植,建议选择搭建库环境作为开发环境。
$ F! s3 m. `8 ?7 s6 l& s; N下面介绍一下模板工程创建,工程创建完毕每个工程均可以在此基础上进行开发,
0 w; z: Y8 e& O- E0 A% B1 c, _; O7 C9 Q" m# d& z0 f7 X
第一步:下载官方库 stm32固件库V3.5 里面包含官方固件库源码,还有官方参考板的参考例程。
4 D+ K  J6 M: v( `3 x1 x3 F& N
: A4 v7 E/ H1 d8 y, V  {对于开发环境搭建而言,我们主要关注其中固件库源码以及针对32单片机的启动代码、中断管理等文件。4 ], ^: Q6 ~( X) d

. o; c- H: V' r固件库
2 T+ s3 j) d5 {  d
3 S6 d  M  w! ]3 K5 o3 y
TX1_3(4V4~YR`6_EL1@LY0C.png

* r+ K- W+ V) o( }; q- q! B* R
- B) ^% `& f& P% R* m9 Q; ~解压后查看文件列表
, N5 m/ R! Y0 T1 i7 T. |# ^, d! H2 c1 O# V9 _) h+ T4 x" F
20171016093854625.png
3 u3 S. m% ?$ @

% |8 i8 j* \( x% P, J; G那么我们新建自己的工程模板。$ _# L2 E! j1 K7 \
0 C. {# v( L+ i% I: \
首先新建个文件夹,命名依据自己的喜好; u. i9 V9 l$ Z

; h7 ~$ Q/ x- ]  y3 }
20171016094504088.png
$ y2 X4 ^$ ?# {+ W7 [
$ J0 o; t8 P; v2 R* B( g) k
这里我命名为 STM32Project
1 s/ N. L4 i- M1 x: ]- f5 I$ F' t在文件夹内部新建四个文件夹
. {# R, H+ C* a) R8 B
) i5 w7 I, d# ^9 p
20171016094814269.png
% V( y4 O8 ]' O! \5 S& q/ J7 d
% c- a' d: e! V& [- a
第一个文件夹ASM存放与单片机相关的汇编文件,里面是与单片机启动相关的内容
* [  u6 W- J! B/ z& O5 o
( Y& ^; V. i' }* c& P" s0 s# ~STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm% w3 ]' g: n* ~; m
20171016095530755.png
9 E) g. Y3 q3 f4 ^" O
' ^4 |9 P- U# `7 e- ^
这个根据自己单片机的情况选择,选择方式通过后缀,一般md中等容量,hd大容量··· ···主要依据容量区分。也可以全部复制到ASM文件夹2 ~& w1 D$ {' w7 j; j0 `+ Q$ P" y
' a7 N. l% `1 v9 o! l) ^7 A
在创建工程时在工程内部进行选择。这里我们全部复制过去。5 x5 L* V( b( {! l4 W& |3 r

' Y9 O9 B( F5 K' r" k3 `第二个文件夹内部LIB内部存放固件库源码与头文件
( e# K( L# p/ i" o4 O1 K- ^/ L  y
. U) S( U1 k$ J" c- W  b, K源码头文件的位置在  STM32最新固件库v3.5\Libraries\STM32F10x_StdPeriph_Driver 路径下 将src inc两个文件夹复制到LIB文件夹下
: c3 P4 ^: z1 ]' r$ Y; U9 R$ B; p3 ^( K
第三个文件夹 System 存放与内核相关或者中断入口定义等相关的文件,还有一些重要的头文件5 {! A4 r5 O, ^2 ^% z* t! j1 |

) U$ J2 v& [9 i6 h4 y4 H6 }, a
20171016100220131.png

4 j0 x6 r: I' G$ N, V
6 G9 c. }$ \+ _% c2 f& k这些文件在
# ?2 d2 G7 ^: E- b5 X6 @STM32最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport
9 E+ b5 {' K+ w8 m
" p8 x3 A3 ]5 |; ~! d- x0 N3 }3 y+ f$ b1 ASTM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x  w: i3 ~  z) n9 S7 l% M
: l; P+ J, z) m9 @0 c9 L1 h! B% L
STM32最新固件库v3.5\Project\STM32F10x_StdPeriph_Template
- `( Z8 C2 N  Y- y% b6 g, D4 a路径下可以找到
' K. T) Q; h- |5 J1 ]7 M) S进行到这里工程所需要的文件已经准备齐全,接下来就进行工程的软件配置,打开keil(我用的是5版本的), `5 Z  a3 y* E) H# J
' t  Y, I4 F2 D- G4 W1 |
20171016100806062.png
5 ]8 ?- w9 j- a1 _* d

6 y- v! j: t) e点击新建工程,选择路径刚刚新建的工程文件夹,我新建的工程文件夹叫STM32Project。文件名就是工程名称,这里5 t$ W+ Z- v/ _( e- ~) C

5 @  i4 ?% O* s: |& }我填写的名称与文件夹名称相同STM32Project
. j3 o6 s# A  N% d$ j5 ^' O, i) O& V, _4 S
20171016101020601.png

7 W$ P4 d! n, z3 L& L7 W
# j8 s) n$ c4 m5 S3 O+ u* u点击保存后出现芯片选择界面,这里我选择的型号是STM32F103VE  大家可根据自己实际芯片进行选择。+ m0 |: ]% P; t8 ^5 x

; ?2 F5 X8 s' p2 u
20171016101336723.png

/ p' ^% A8 @0 |! ]+ A; n. t6 F, B% q
点击OK 下面还会弹出一个窗口,这是自动配置相关内容,我们这里直接点击ok,不进行选择任何东西,稍后进行手动工程配置( V4 j6 b8 |$ Q  s2 B! L
( w. o+ `/ J. x  L
20171016101521762.png

' M% S* R3 ^# N/ y( O6 `: s! y5 ~' F  j# w' k
点击项目目录规划按钮,进行工程目录配置,让工程开发条理清晰( T7 b& r. M  j, @

8 G- e3 @4 y7 O4 X# E6 H
20171016102918530.png
7 X9 _  O! l' R8 ~" P4 ~

( X2 F1 ~3 _! c- \' n3 u处理方式与建工程文件夹下的内容基本一致,需要向其中添加一些文件2 I; O7 u! {+ W6 G3 T" [9 L# I% y7 W
4 U0 |- A  j' H7 w. @9 z" `
20171016102240242.png

# Z6 c7 Z& x4 W, A4 r9 {$ z' L! |" o3 Y
! z' y6 H+ m2 B: b+ \% u添加完成后点击OK2 w/ a- U: H; o) X2 w
6 j9 V0 j9 _6 _* h% a, V5 w
20171016102320395.png

/ C" i9 U2 O+ e! ^
" f9 U! `$ z* L工程预览如下,ASM文件夹依据我使用的芯片,选择xxxxhd.s,LIB文件夹选择最基本的中断管理、IO操作、时钟配置三个源文件
# o" ]9 ^' K) ~9 o& o# N' g" a$ I5 u2 E4 e% Q
(例如ADC 串口等没有添加,可根据开发情况选择性添加),这三个文件因为每个工程都会用到,所以添加了这三个文件。. P9 w% k8 u# n; N2 J' T/ @

3 t3 w2 Y) j# Z) ASystem目录将所有.c文件添加进来即可。也可以将所有文件包含进来(.h)。方便工程配置。
( j1 b4 D# u" H/ N, ^. y8 a+ E4 d4 Y( f" h+ f  U
接下来进行工程软件配置,点击目标配置按钮8 d9 L6 O4 t% E/ @2 ]7 {0 I( v
* y) v. s* ~( ~5 K6 @
20171016101729144.png

* K# x) P9 |, X% _; m7 p: n; f" }. q5 O9 S  r
在output选项中,如果采用串口下载勾选生成Hex文件选项,如果采用ST-Link下载不用勾选  [; f& F( M( \6 L" r( q

: T% {7 N0 e0 f* c. q
20171016103120217.png

' o3 y9 c5 S( t2 e
, w( S. Y& C7 {" U+ t+ L7 H3 d) z在c/c++选项中,需要做两项工作,1、配置宏(宏第一个内容根据单片机容量进行填写),2、选择头文件的路径,点击保存
: F, c3 R; ~: O, C4 l% ^+ r
: K; [1 w6 a+ p( A$ \/ D
20171016103500379.png

1 t/ E& M2 I# _' z. o; G, A1 U' U. G8 @, [
在Debug选项中,选择调试工具STLink 或者JLink等等,点击旁边setting按钮勾选Flash Download选项中的Rest ang Run选项,点击保存
) O. |/ a) v9 U. m( L) a' ]4 n& V, I7 y7 E. A( Z5 e/ R+ Q* J
20171016103843235.png
9 b" b$ V# K6 H/ Y' C

' e" r* j' q( O! z2 W在Utilities选项中去掉调试之前更新目标选项,点击ok
8 |6 @/ u/ s6 b4 L/ b
; D& ?$ x: Y+ }  T) @0 i& p
20171016104122357.png
* F( D7 y; ^+ [% U7 d" x/ e
$ W. |) F" ~( t/ X6 X
工程配置完毕,验证一下工程配置。
" A9 c) j, q( g8 F2 P/ j/ N! I! O" ^% M" C9 U# ?
点击file,新建文件保存在工程目录下USR目录,命名main.c,在目录树USR目录分组双击添加main.c文件,将main.c包含进工程& J4 Q6 q9 e9 L  n8 L4 R; a
8 Y  m& y, G5 a
在mian.c写入实验内容,编译进行验证。/ w. j2 f- O+ S4 W
+ H5 E! o- B) t9 U3 }- ]
20171016105923107.png
  V. U& E8 |7 K! ~1 z! y
1 B% i5 d8 [9 a. ]
输出0 错误 0警告工程搭建没问题
& Q6 c4 O' j# Q+ N0 F% d采用库函数开发时,最好是用到那部分内容就将哪部分内容添加到工程,例如用到adc就把adc.c添加到工程,不用全部添加,固件库模块声明在stm32飞0x_conf.h中' N2 L  i- T& H% E- ]
, h: Y. y8 }; i" r+ V" |& |7 w* H
没有用到的部分可以注释掉,这样在变异程序时可以加快编译效率。
% J" U$ J" C) T* B& ^. _. `) u. l% ]) d$ V- u8 c$ B
7 P; O: a1 b3 Y$ P% f  t3 N" t0 N
& E& \) V( |; Z8 k0 s' I- b
收藏 评论0 发布时间:2021-11-26 18:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版