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

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

[复制链接]
STMCU小助手 发布时间:2021-11-9 17:00
CubeMX设置. J6 d, z. A% q1 N4 {3 P
1、在官网下载安装包安装,链接地址;
% o* A/ R4 X9 _: J( Y3 I
8 V# k' N. ~9 `" K5 j2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;
) u! K$ g! }# h# `
1 Z: @1 r9 S' I如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。$ P4 L$ _9 k0 y/ k1 L# V+ s7 k1 [

9 I5 ]& }1 ^+ W8 z: h固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。( r( u( V" W9 U: Z( J: X* k- y
, a! a$ G% \. R5 v% d
或者在主界面点击(INSTALL/REMOVE)安装本地固件包。
4 E" Y, \  m0 z8 @/ _1 q$ g! [- U& [& [" q
20200418175903466.png

- z( E$ \) u" n; n
8 `1 t7 T  e+ U. e9 b$ |" i( [3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。* _, G( T+ b( S2 a1 @) x; u6 l8 f

6 H+ I1 K% `7 }  MCubeMX界面认识# D3 d8 c: L% o& Y0 @0 L

" v6 {+ x5 l) R) O" M- Y+ G0 T( f6 D* H
20200418183040744.png

- o! [' d2 Y6 y- j- }/ G; t% \2 c  p
Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)( W: M  E7 r! U7 Y# h$ g
& E4 p; B4 L+ ~3 k/ c* u
Clock Configuration:时钟树设置。(之后会慢慢讲解)
# Y. k5 ?, x+ b* p' Z. c: N0 u
- J; z1 C4 h. [  ?! `3 m7 f" sProject Manger:用于工程项目设置,输出代码设置。6 {0 Y* u- X9 G  C! Q6 X0 d' V

$ r3 O  J: o) ^. F0 {+ v. BTools:用于电源管理。
5 O  ?! {" G# T' p; j5 w  Y* h/ z& V7 ^
5 C! ]' L. a. L上面“GENERATE CODE”用于生产代码工程。
( `5 w3 S, [8 d2 w) m" t7 f% e! u- Y2 b5 D( ]7 a
我们来讲一下"Project Manger"里面的一些设置
- ]" o3 Y: D( x8 Y7 I) e$ X7 p* K' ?  D/ ?
CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
* z/ {! F# c+ U- L. e/ M7 ]
) L, r+ c4 c& A- U. UProject(工程管理)
: r6 }' d9 T$ \$ h* M3 j! v  j, C+ C. W& e# a% T
20200418184246389.png

; T6 X' H3 V) i0 u) {1 T
: u( O9 l* _, T- Q6 c Project Name:工程名称9 h& R" m  h5 J  r
Project Location:工程存放路径
* y  W6 t  S! D' |Application Struture:应用程序结构
  s) y8 G1 l! DBasic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。
8 ]- B$ O' U6 @1 U. Q
1 K- H' x0 y- }' H! PAdvanced:相反就是包含中间件,一般针对相对复杂一点的工程。- D6 R. L* o! q5 m# A& j7 P
; x+ s* O, n1 N0 L, e3 ]7 [
Toolchain Folder Location:工具链文件夹路径
- A* `+ G8 x  s' rToolchain/IDE:工具链/开发环境选择
  ^6 l& ?" s& `8 N; R/ O0 \5 H安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。# Y8 |+ W7 r9 _/ v

! f, [+ M' `7 h& ]堆栈设置:Heap堆为0x200,Stack栈为0x4000 k2 c, h# w6 ]: {7 j9 q4 l3 q; P
MCU参考型号
9 s) Q  Z( c% V* d1 ?5 D) v固件包名称与版本9 O5 |6 p" s0 d% v( b( |# N
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。2 {' A$ a2 R* Y& L" R
* w" r8 p2 S% U
使用默认固件包% Y* L6 f, R& F4 X
Code Generator(代码生成)$ d4 G1 L  p" b' h# o& G5 A. W

) V% W" k! G9 B: c: i' K+ X' A0 ~' y
20200418185548983.png
% t# m/ U; \- L6 O

/ J2 {: |; k: _2 Y/ ]+ r5 O3 iCopy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。( s" c; F8 V7 ~. B
Copy only the necessary library files 只复制必要的库文件。
. a$ O0 C5 h! B8 e; Z8 G" F4 G  [这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。
5 c8 @+ P6 P3 T( i
2 G# d- }/ H; [* e* B1 x3 kAdd necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考3 X% Y( t( r% r. {% a
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件$ ~1 s& P7 l9 a) j6 z9 ^
不勾:所有初始化代码都生成在main.c$ H" D- {8 z2 K  b- W/ V
4 _1 U( L! q: J: H4 M& Z: r& ]5 B
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。4 N% w6 S. ^9 M4 V& S" s$ `

- b, j# k* b2 V" E; UBackup previously generated files when re-generating 在重新生成时备份以前生成的文件. L: h+ \& ]6 Z
重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
# k1 ]/ [  E" a7 r3 S% ^! u! W$ t
; z; f6 Q0 V9 R' Q; {* NKeep User Code when re-generating 在重新生成时保留用户代码9 y; Y$ V3 P( u2 a# z7 b5 t3 m6 Z
比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。3 k8 M; A  j6 `4 ~0 ?$ a2 e9 O
0 v3 k' G) U. |" ^, e
注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。
4 a* t! o; B* L( M
5 K' Y3 l) }* W. E: V: {Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件
  ]. o$ r8 a6 m比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
- X7 B4 L3 |) m; T' G5 }6 V2 Q3 X( @
Set all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)0 W1 v# E/ d) e& E$ @  Q
这个做低功耗产品时这个选项有必要勾选。- |: K% x# d2 N$ x+ R

3 Y+ o6 W/ _2 t0 I0 gEnable Full Assert 使能所有断言& d4 I; W" U1 Y; I+ Q
Select a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
& n7 B3 W/ x$ V: g
( p: s# @! ?! @. t" V
Advanced Settings(高级设置)
! N. f0 s4 I* d% V4 j: h8 X8 y. N  l$ f& }+ j, x& B2 J
20200418190332622.png
  [/ f: a1 X6 G

2 t& ]; `7 j6 q/ X* w' [& RHAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。7 k4 z. F/ h) K+ O; z; ~

+ F! L* M$ K) @5 \Not Generate Function Call不生成函数调用, p) n) m3 X3 o
也就是你代码不调用对应初始化函数。
3 A( T& N9 F3 @9 _( B& v8 E# `4 d) a( a
' x& W% P- d; _+ Q& N比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。
6 }2 h/ E" U6 o4 q- ~7 z+ }2 E3 I
  m& U% b. C, }Viility (Static)可见性(静态)7 T7 l- E5 g7 s6 x
这个就是初始化代码声明为static。
" p" K$ q# Z% ?) w! o4 V/ l7 g% i& g$ V$ r- b
提示:
- y4 l9 A, C1 h( f0 G% ?+ c2 {
. z6 m0 u1 R" yA.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.
* E5 ]$ B# z1 u2 T0 v, P, E4 Z/ G% ^8 r) ^% [$ S  x5 y
B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。
2 K7 m3 G/ j( C+ i, z" H  N) M) S* m  d# o) E8 u

+ K3 [- j0 l, b9 b; C+ [; sMDK-ARM软件安装
8 B9 O8 n" u1 W6 U" f好了,我们先回到MDK-ARM软件的安装。, ^6 C. o8 B+ I3 x* E* |8 {& L
KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。2 `, {0 l$ Q' Q' z$ u( @: j

  t# l/ h) A% c' _uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。
) [3 A" i/ z% ~* O2 i  {
9 d9 k; V. M6 e4 d1 d& B9 d4 a1 LMDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。
, H/ o: m* a- M& o# M; F/ i7 H' H; y) N3 U
1、安装MDK-ARM软件,下载链接;2 f9 t& C: c9 }

8 S. _7 G; t3 T% d* S6 [9 i' q2 Y2、未输入许可软件为Lite版本,代码大小限制32Kb;+ o* |+ B5 w* e" x1 X

, b: o. D0 j# Y8 y3 Y3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。& c0 R% }" s/ _/ p3 R% w
% i; R( v) J" ~
ST-LINK设置
6 R' G+ X/ P; _: y. O将st-link接入电脑usb,安装驱动。) ?1 h8 m3 C+ t" X: Y" E  l4 J
在mdk软件中,点击魔术棒工具"Options for Target",
  u# F8 E) J" s/ d) m在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting. X: O& }& T7 X3 P
/ D0 g+ G2 f% x
20200418191302857.png 20200418191345700.png
- z) C1 g5 ~* E& |5 M. w2 U

' Y3 o* m  g9 u- q( z     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。
1 b; K0 z& f9 u# E; Z
- }$ f) X& x7 ?" S
20200418191425598.png

3 H' O6 R6 i; }# c  e- t" r
$ u8 _* g# E" [( n5 Z4 _最后我们的开发环境已经搭建好了。
0 m% b* M2 ^& V# {& J# ?- S) m1 c: n$ d$ c* j9 E

) [, C2 Z. {1 b1 y, p, \' M, j8 Z$ T1 w
  W! r& t7 I/ j& v  j  M) `8 ^7 {  z

: v& f- ]$ l) k* X& H+ u3 Q4 y5 v) W7 k- b! B
收藏 评论0 发布时间:2021-11-9 17:00

举报

0个回答

所属标签

相似分享

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