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

【经验分享】STM32G0学习手册——开发环境搭建与熟悉(CubeMX与MDK5)

[复制链接]
STMCU小助手 发布时间:2021-11-9 17:00
CubeMX设置7 X$ L  ?4 Q) R* k3 J6 y5 q" W, r
1、在官网下载安装包安装,链接地址;
9 l0 d6 o' a+ Z# S) ]
7 K; O; I) _$ b' D8 f1 |& _9 U2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;" _4 A+ p% g3 {: ~$ ~
2 }2 m5 S7 D$ M
如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。2 X1 M5 e. B) k3 R

+ r9 T: y% G" ^- `. a: p' g固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。
4 b7 Q9 p2 r1 W
3 o6 _5 t8 M5 Y2 ?* f或者在主界面点击(INSTALL/REMOVE)安装本地固件包。4 t! @* w/ K3 ~4 e! K: c. g
! j" P: y3 J) V
20200418175903466.png

" H9 A# f; o: u& P  z" h) r! h. \! s6 n; u( P* R+ X7 G4 `( @
3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。
* }; l0 L: T# R3 v7 Y0 b( u) t% ^* b
CubeMX界面认识
5 x- K- H- U) I
8 Y5 N) q7 Z+ y6 G, K
20200418183040744.png
. l8 M! u6 r. y/ n" u+ O+ ?
  @+ K( U+ }+ Y) g8 U( Y
Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)0 @* O2 d& e, [/ c" N" B2 S
3 ], G" j! w* G
Clock Configuration:时钟树设置。(之后会慢慢讲解)0 e+ `- O  F" a8 m

. z% [" a6 n) m* kProject Manger:用于工程项目设置,输出代码设置。! P4 @; t4 [" }; `% m/ n

1 o: W" s2 W8 ?6 ]) {% B4 yTools:用于电源管理。- ]; Y' a: Q! U+ J% J$ r  Y) P
) m% z3 c- J* [0 ?5 e
上面“GENERATE CODE”用于生产代码工程。0 K2 k6 R( y% d( b) F
, t. E! Q, j4 s( B
我们来讲一下"Project Manger"里面的一些设置
( a* K- `: P0 M
# C. v8 ~! D# S- a: eCubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
# p( o* u+ y% L4 p3 n( I4 \( C
4 x: L: @, j- A% QProject(工程管理)8 O+ y7 z0 j1 Y% q; ]3 S1 o- h5 E

3 x+ V/ G1 I% U% q2 w' z
20200418184246389.png

! |! A& I- g* W* q5 |, [) i) M
4 N. i3 U4 @4 t5 F$ C- Z4 `# q Project Name:工程名称
7 `' N2 N, F4 e2 d! t& g  _  }Project Location:工程存放路径  {- M! L* y4 \) G( M
Application Struture:应用程序结构3 Q+ j2 Z. W. h5 c) f0 z. k# }5 G
Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。+ G$ c9 d" ^# W! v

2 A1 A4 h1 x+ v  v# i' e- GAdvanced:相反就是包含中间件,一般针对相对复杂一点的工程。
, y, `: u* E% ?, A) q2 N% D  X
6 Q7 Y& w& R; EToolchain Folder Location:工具链文件夹路径+ w" Z/ f0 D, G. M% X% ^* c
Toolchain/IDE:工具链/开发环境选择9 e1 y# r  j3 v9 h# C( h! Z
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。3 v0 F, G6 a& f+ |0 t2 x" D( B

4 _7 T! g, h& M6 B1 k堆栈设置:Heap堆为0x200,Stack栈为0x400; u. q( j( t1 @4 o
MCU参考型号
/ `: t  ^# I# |固件包名称与版本% z! W/ G# h, I
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。9 w& s* c' g3 D3 h8 v) V5 x
$ p6 [& V/ n- `( H0 _
使用默认固件包; I6 d) V3 V; @
Code Generator(代码生成): Z, o4 p/ F/ l4 O; d
+ q1 S9 W  u+ D' i
20200418185548983.png
: C" I3 O& N' }  s: x
" j6 C6 h0 y5 V; x! i
Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。: N0 a" a0 p" A2 O' V* w
Copy only the necessary library files 只复制必要的库文件。
2 _7 T) N9 z3 _6 ~6 K: B7 i6 F这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。5 ]  E" I  g: Q/ ^& x

, Z0 F4 P" U' Q% {/ _+ j9 PAdd necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考/ J/ }& @+ j( g4 j) l+ A% N
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件
& C" u6 y2 h6 g2 r. C不勾:所有初始化代码都生成在main.c
" Q3 E" C4 ^) P' J, U
* P) w$ l* j2 }$ |7 [3 Z6 O, f6 `勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
- I& R; G. T6 _$ h" \) P
# h$ S% L) P! K3 O* ZBackup previously generated files when re-generating 在重新生成时备份以前生成的文件
7 R2 s; S4 W5 C6 B$ B  |. W* C重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
1 H% y  s9 [, ^5 A
$ O  y' p9 W0 \" T' Y; X8 N, z# ?Keep User Code when re-generating 在重新生成时保留用户代码4 T. d6 M. R9 o! @
比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。: n8 ]2 O/ {/ I  y# Y' I" \

9 M1 Z2 m8 `( l5 J; C注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。
6 P. |' s( J( H
% w# g7 k0 q0 Z: TDelete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 # I9 A. y# {* c* @. U
比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
3 r3 F& U! `( N
" D+ l3 E; G  |( M& D9 LSet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)
; K: k  M. z& {  X: d; Z1 x这个做低功耗产品时这个选项有必要勾选。4 Q& ]3 s0 ~  b, ?+ ~% o

% t% d7 U4 a" _# o7 A" v! UEnable Full Assert 使能所有断言8 y0 @! Q$ I% w9 ?
Select a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
1 @& Z" o9 c5 ]* b* m! X8 ?: _! E
' y  D& _# l5 d1 R/ O$ t
Advanced Settings(高级设置)
2 t+ K# H/ T8 j1 M8 P4 a: i/ e# Y/ r$ C, C1 s. E
20200418190332622.png

# q2 {% u! b4 u, [& }* F: p4 [+ r9 l  w& S7 Z  R2 Q
HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。! k, ]- q) z: d$ h  I

; }% `% d. t) i6 G$ d8 D1 A# eNot Generate Function Call不生成函数调用
! p, d' p0 ^# y' o) ?% n  J$ f也就是你代码不调用对应初始化函数。
" H" W# E5 L8 i  S0 y& |% X' A6 d4 d1 b- W' q2 }' {. u
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。5 s6 J8 f, i  E9 s$ P* B
2 }0 ^8 L9 C: @. o
Viility (Static)可见性(静态)
! {% Z/ U' ~* O% L4 O0 Y5 _- \6 @这个就是初始化代码声明为static。
3 x6 H9 r; N* G# n0 K
8 H: O( l  n" q9 i提示:$ U- @7 i( T3 r
/ v: h4 T2 I3 r$ z$ ]( q3 q
A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.- E' Q' A& h  R2 }7 m

4 P/ \' }9 S% c1 o- F( e3 @B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。8 I# a3 S* U: y1 T: a+ o

2 ?) W9 I4 I6 B
5 m9 @2 T- X6 u+ L- X% e( K& ?MDK-ARM软件安装- p: K7 K4 g$ i- d0 W% Z
好了,我们先回到MDK-ARM软件的安装。  T" d) v% v! H$ m' V
KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。
$ x  L* L, T: z) S/ U9 T0 W7 D- k& Q/ L' @: H2 f
uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。
0 J9 ~3 |6 e6 S+ ~/ W$ M& Z( T- d9 T) n2 U. [8 V" J
MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。
" @8 W6 H" c( L% y6 v" Z
/ z; R. [) a/ G! [8 a9 _1、安装MDK-ARM软件,下载链接;. m4 H- J$ \) J! |& P' ^* n* g' y

& m4 Q5 k" ^( V. F6 {$ d8 f2、未输入许可软件为Lite版本,代码大小限制32Kb;
& B4 W) G7 c4 g. ^# C6 x* R7 I% o& ]
! `7 @- m& h" u8 W3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。
  P! w( [+ m% w, I# a2 j8 ^
. ?+ q, n4 i) m% a- iST-LINK设置
$ p9 |$ G6 |" f6 O& y; u7 C# b8 D将st-link接入电脑usb,安装驱动。
1 s5 S, L! U3 w: P# J3 E在mdk软件中,点击魔术棒工具"Options for Target",- N9 l/ z+ d7 h. b% @6 c( k
在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting3 d8 t* `* `; c! m. t

7 G/ Y) L' b% W0 _' {8 e) ~7 ~
20200418191302857.png 20200418191345700.png

" P, v) C/ O+ j+ X& I& q
* Q8 ^, j4 v1 E  {1 ?, z     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。
8 k! u2 q9 t" N4 R; y- A5 ^, L
; s+ O- `/ s4 A8 m. D7 j1 ^8 h- D
20200418191425598.png

' b% S% T4 v: b. d. e* q6 x) Z2 M# ?* D8 H, |; U# i; p
最后我们的开发环境已经搭建好了。1 I8 g- |' l9 z, E" \# _  d0 p7 q

6 G, J5 I+ W; A8 r, }( T: I8 m7 ], M, Z

1 J1 {! }9 a- C2 s7 P1 g
, g6 O1 P6 r( ]- G5 K. o
+ E0 K2 J1 r/ I7 y5 c
9 U! {- X2 r' z* b9 S* O9 U. `
收藏 评论0 发布时间:2021-11-9 17:00

举报

0个回答

所属标签

相似分享

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