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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 11:15
CubeMX设置6 y1 o1 W1 i* J' l* a
1、在官网下载安装包安装
# B+ d) Z9 E% f# v
% b) L6 q; B% B6 }2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;+ Q% W  |" X: I& ^+ |+ k

3 M2 U) X/ M: b; S+ C4 e$ x如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。
' J7 O0 C) j7 t# s- m0 x% }/ l: o
固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。  ~2 H1 Y7 ^9 i5 J2 t

! L# R) e  }0 P1 W或者在主界面点击(INSTALL/REMOVE)安装本地固件包。8 R- c' Y- Z) }) J

9 x* u- T( D/ u+ ?; q' S) y4 T
20200418175903466.png

/ D% L8 ]6 `7 f$ }- ]8 T3 r5 K
4 A1 S7 p9 Z, K3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。; d! I* A% [3 Z
. Z; s" j: m" L  z
CubeMX界面认识
0 v& ?# [. ^4 t( O% b& o5 i/ i8 E! Q- `
20200418183040744.png
; C- `, J# {: h: L$ w' U4 p9 t2 t

6 ~4 e( U* O* r# P) A2 \Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)9 s2 J+ X$ y9 _" G( P4 {* P
5 a! t: ?9 r5 a0 T1 c
Clock Configuration:时钟树设置。(之后会慢慢讲解)
0 Q8 ?0 a8 o  p8 p9 `# D  @" g
& N  i. z3 H' S+ e. eProject Manger:用于工程项目设置,输出代码设置。; t( O, U0 K% N$ _8 G
5 T# v& @0 L4 K
Tools:用于电源管理。
% B, q: G( J3 v+ G# ?; h
1 B! g, t+ W, ]4 B9 D" j上面“GENERATE CODE”用于生产代码工程。
& ], b& A) G" Y1 @+ E
4 c; Z+ y; C# L) T" t我们来讲一下"Project Manger"里面的一些设置
, l- Q  j' ~1 w: V( N4 b* @: `5 ?+ D+ i! Y
CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。* l4 u" j  i6 z3 A) f5 w& g# l
* e" |% Y0 m. f
Project(工程管理)
. ]2 d/ r( U% Y/ Q  L8 R) b

+ U* A' {, t& A$ x$ a5 z0 ?  l; d
20200418184246389.png

+ q5 ^* }  A+ F) g3 Y- [  e) |2 `) v6 f' T1 c
Project Name:工程名称2 C+ z+ n% [& v: X+ q$ K- r: S
Project Location:工程存放路径% }# R" E% w! K9 @6 ?4 G. t5 ~
Application Struture:应用程序结构6 }5 Z' q5 F4 m) @# `
Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。5 j* K- }8 V  a% R& p
- W1 \# t% B6 |% }
Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。" M' }/ m) f- h% U) g
) h+ ~2 |* U5 Y# n
Toolchain Folder Location:工具链文件夹路径
2 Q) ^$ d2 [* w" y; ^Toolchain/IDE:工具链/开发环境选择! s. l( @# y2 j- d0 q
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
$ r9 m7 Z/ R4 ^0 k# ]$ p
* z7 X, `% e; ^1 I/ Q9 D/ M堆栈设置:Heap堆为0x200,Stack栈为0x400
6 i8 U+ n; g8 }/ sMCU参考型号
" s1 {, e; N& a, r- \. D固件包名称与版本
5 `3 V' X" G5 q2 F; n: Q如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。
. C. P/ }) ?) g. N/ E' {4 L6 }9 N1 s2 O+ _( K$ n6 S+ A0 O% \% \: s
使用默认固件包
: D$ l4 i8 p2 e" k5 |
! V3 |; b* E2 K. n* R5 c
Code Generator(代码生成)
: k( A8 D: z  O; c  x7 |1 S) _, r' ]$ j7 T: O
20200418185548983.png
( H* b  F: p' x6 K

9 A# ?2 c/ B: m( E5 k6 ~) m1 P9 oCopy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。
$ x( Y7 a# c9 R; r% U1 c- YCopy only the necessary library files 只复制必要的库文件。9 k+ r8 H1 Q9 y% f5 n& P
这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。- O+ ?! t+ a* ^) b' N, I8 A
1 O. a$ G3 U; X$ C
Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考$ P+ K9 y% X7 N8 ]6 T
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件+ w( l) g" q( D- {9 M; \( d
不勾:所有初始化代码都生成在main.c
* s6 P" n. u$ }1 D- t: H4 q, q: L# O6 \4 p  l
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
8 _# K+ T2 V) R0 L
/ F+ u5 J5 }( w# z: ^& a. cBackup previously generated files when re-generating 在重新生成时备份以前生成的文件! y% R' F7 `* J3 p0 X$ e
重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。/ @" T" M) w3 u, Z  v1 d

4 ~# L2 }/ f* Z9 O, _Keep User Code when re-generating 在重新生成时保留用户代码5 ~; X! @- h: Y5 R! f
比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。
4 [% V/ ~' `' J
5 g) ?1 t" F4 M3 w8 A# X注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。
; V9 d" X/ N5 S: ]* i& [! b$ T9 m4 F3 m( m7 `7 M3 m
Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件
' s; m5 m9 }! q8 p, ?* ^比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。8 S4 j- O1 X* R2 G1 f, u

* n9 z2 h7 ^4 c4 s2 P. y0 v& xSet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)
$ i+ U8 g; E4 |# v这个做低功耗产品时这个选项有必要勾选。
  ~9 v7 |# s/ m" D  F. e# u, L% G1 G& c: U! o4 m: s6 b
Enable Full Assert 使能所有断言$ K0 V7 T$ P  o
Select a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
: S" M$ L+ f9 f* x! ]6 t. a' z( \- D8 w( M0 F8 K

! g) j# S+ J. ]. e* D6 l- [. w$ U& mAdvanced Settings(高级设置)
! O, l" H6 K+ O0 h/ ?0 M0 W+ z
$ G" Z( g# ^" [. D
20200418190332622.png
/ W2 g4 O! s$ r# ?7 I

* s3 P) `/ G9 {7 L6 o) dHAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。
: f* F" u" w# U6 N9 W0 {0 m' Z
* t  R# O! B8 A; cNot Generate Function Call不生成函数调用: f/ P; J! G3 q$ ~' x; \8 K
也就是你代码不调用对应初始化函数。
& x  N  i+ w7 I- q# }: O* K1 v! m; |7 x* j! i
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。8 y; K1 [% W$ z+ b1 n' h  k
0 m7 ^0 n5 p6 ]& O' F" Z" i
Viility (Static)可见性(静态)
2 O& a! \) l6 W5 P& o: j  J这个就是初始化代码声明为static。+ q+ r* d& j) ]' M
2 @3 K6 S" g+ _+ }# i$ i, r
提示:
0 n3 v9 J* J4 }) j- B
  ]( \! }' y* ZA.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.
  v) w: y. e$ S# h  c  j$ ?4 f$ ]8 F+ O6 Q& N
B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。
) A8 N2 V: V" v5 _8 Y/ g* K- y) H) a5 q) ~
" a$ O0 p/ y! S/ Y
MDK-ARM软件安装
% F4 q  s& s1 j2 @- \- ~0 u( a! v- Z好了,我们先回到MDK-ARM软件的安装。- W7 v# ^3 J0 p- {

2 o- _$ m3 R/ _. TKEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。! n6 u. D9 ~/ _. R, m: t, d

, ^; i' @9 x1 c/ nuVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。$ r+ P8 j) c3 S( T9 t# U

/ H  Q, g. h6 I) W# V" C8 aMDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。8 j) k, J' g$ W" m
' H6 G0 |% f3 G
1、安装MDK-ARM软件,下载链接;
7 B* l" u3 i; A" i: j  B( @5 c3 n( z& n+ I, @. s
2、未输入许可软件为Lite版本,代码大小限制32Kb;
. f1 H8 I) o6 R6 {" Z1 S1 G
3 X5 B" X7 M1 i2 \/ P9 I3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。1 ?) i# A# ^9 m( g1 x/ h
" S" [, |" ?: p+ W" K
ST-LINK设置
- W# z$ ]: {( `: J5 x将st-link接入电脑usb,安装驱动。
. q1 z4 ~/ _9 z0 H% t在mdk软件中,点击魔术棒工具"Options for Target",8 z7 a. n+ s9 w9 t+ Y
在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting
2 N0 ^6 V$ W6 j$ ?  ~( q8 Q; ^: J  s0 m
20200418191302857.png 20200418191345700.png
( ~! A: O6 V' U; d
6 c6 p; a( a0 b* S* Q6 ^
     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。& R# Y2 Q4 l* B+ R/ `

& ?( q9 e" h# U5 S9 B- V* |/ q" V
20200418191425598.png
- `5 ~; G1 C6 s6 d

) N4 h8 B! I9 l最后我们的开发环境已经搭建好了。
: h) i& G* `& j! B2 A, p; g" g( X' _; T

* Z2 k  U% _: B' R7 e. M
收藏 评论0 发布时间:2021-12-9 11:15

举报

0个回答

所属标签

相似分享

官网相关资源

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