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

STM32G0学习手册——开发环境搭建与熟悉(CubeMX与MDK5)

[复制链接]
STMCU小助手 发布时间:2022-10-31 11:55
CubeMX设置
6 F1 N( V$ b/ M1 g: ~* s% _- {1、在官网下载安装包安装;
4 o0 q! J( ?2 L9 i( d- ]( l8 a  {4 ^5 F/ P4 W0 P
2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;
7 d% L, T" {' E1 O: r8 Y0 K& a2 W' p; a
如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。1 y+ K1 t$ f) J

5 w& M2 I: i6 o在"Manage embedded software packages"下方点击"Form local..."安装。) @. Y5 V9 S5 o% S
$ h( Q# `( V4 K) V$ J
或者在主界面点击(INSTALL/REMOVE)安装本地固件包。4 }/ A- M1 f, P/ q0 i

/ S; H" f  W9 ^  z 20200418175903466.png - O* ^6 v& B& U# p
7 _5 C; l1 ]( Z( e! m
3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。' U: d  X; s& d, Y. K4 F# I4 m+ o

  t3 ~* h7 T) j: ~2 n8 sCubeMX界面认识
, g; U# L* H+ v6 p, m! e! `1 U. ~& s# U
20200418183040744.png . v. c$ p( c) |
( W/ q5 W' {0 _% I* b
Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)+ P' D1 Q% q3 G( U- f" e

1 V- @6 I2 Z. BClock Configuration:时钟树设置。(之后会慢慢讲解)
9 ^. Q6 i; t+ x9 t. I; A* N2 }; K- w
Project Manger:用于工程项目设置,输出代码设置。" Q# @9 R4 ^- g4 X

1 D3 V) C2 C$ ?; ~Tools:用于电源管理。/ T) J9 D! M' H% O" G/ W

- m. B6 V& E* x" P5 X7 [" h; T) c上面“GENERATE CODE”用于生产代码工程。
0 |% K5 u- k2 F# h5 L& Z& w
" z6 ?% B% N% \6 O$ G0 `  p# k我们来讲一下"Project Manger"里面的一些设置/ f) _" y5 \5 w# V
) Q: l, E  t2 o* q; b  k
CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
- k2 _, H' u" `
4 e5 I% {# a! rProject(工程管理)9 `! x- Z1 e- Q. a6 @0 t

# O0 x- S$ O; u/ m 20200418184246389.png
$ b9 u9 B0 e4 T( J3 M$ @6 i" S4 }% G; z5 a" N* u! }9 ?
Project Name:工程名称
# q7 m  g, Y5 J/ IProject Location:工程存放路径0 b* L6 ]3 U6 h/ ~' Q. b6 u
Application Struture:应用程序结构
* E& ^3 a$ \# Z" Q  eBasic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。. \. m$ ^3 t7 D+ H" I
. A+ V7 N* C2 a* w" U; [1 _! |
Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。) `$ J' d. C& H0 r2 }
Toolchain Folder Location:工具链文件夹路径
7 V% P# j7 L, t. wToolchain/IDE:工具链/开发环境选择' O( F$ [6 a, `* o5 {
; l4 D/ y1 G8 z4 v: F# }/ W; \1 W
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
( W! s: E* e! h堆栈设置:Heap堆为0x200,Stack栈为0x400
6 }# o/ J" Y  UMCU参考型号$ }; M. P+ B# Q) ]) x
固件包名称与版本) `! |; o! N0 [
7 g% P0 g* y5 |' p$ ]4 c9 T
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。: M9 F, d8 ]2 ^7 B% \  B
使用默认固件包. I5 d+ W! E, @' V( }* O$ T0 [% x
1 u& F% s$ b/ b2 ^' [# |
Code Generator(代码生成)
# z  w+ a: S. ]  @
: f9 P+ P/ P/ u0 L6 B: r) P 20200418185548983.png
) a+ D( A7 L$ }. M8 G
, b' F6 l, ?  S7 m9 v' v7 O+ TCopy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。
0 ?, u7 }  h3 }" uCopy only the necessary library files 只复制必要的库文件。; T/ ~5 ?8 d  n
' u+ i6 p6 n' o. \# m, X7 n" {- O
这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。1 Y4 ]) [. x8 F  M' V# Z
Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考9 D6 o" U1 A2 \8 V- @: {+ i* t
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件
, B3 U/ O. Z1 L- F! a" i! K( |8 }# ~0 ^3 w3 ]! o- z, Y8 b( c
不勾:所有初始化代码都生成在main.c9 E9 ]- R+ s% I' x. {) [, S
$ Z' T9 b" b2 o
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。1 z2 ~) u9 \' ]1 J! }: @' R

% i4 l5 E" @8 s; f' t4 j1 W$ uBackup previously generated files when re-generating 在重新生成时备份以前生成的文件
* J6 C' M3 S4 Q$ j& [* l& N5 k重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。# j. `4 \  Q7 ?2 ~3 i
5 b3 M5 q8 \( f; ^: \$ g+ [
Keep User Code when re-generating 在重新生成时保留用户代码
2 G, w% n" A' K比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。  h0 {7 Y# \6 ~$ y, u
+ |1 z+ J$ L$ B
注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。, Y1 V- x' [7 d( `

9 c1 L! P0 F( X4 z- U/ DDelete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 9 V, Y0 d. z8 E& w' M0 B8 u
比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。4 O7 a% M0 n# m! Q/ H, @
$ s* M! `4 W  A
Set all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)
' v- j, l; I' a这个做低功耗产品时这个选项有必要勾选。
+ y/ c5 B5 P: b1 t. d
2 d/ [5 _; {7 i5 h9 w* @+ ?  fEnable Full Assert 使能所有断言
7 A/ u- y8 G0 I- T. S- c' USelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
/ X9 [5 I0 K+ q, F# s- b/ Y( v8 ^4 k# q1 M

; i; V, t& P6 L3 ~& t9 ^Advanced Settings(高级设置)
# ?' F2 y3 F+ P- _$ @4 W7 D: d' M3 O  F/ [* Y% c% D, d+ z1 u
20200418190332622.png : e, I  M) |4 M% O

  x) \3 i" C- f; _HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。
+ D$ c% p( O8 ^3 X/ [2 n; u- E
3 u8 t. ^$ W7 `' K* B3 I( xNot Generate Function Call不生成函数调用
. I1 o- v; s% V# S3 m也就是你代码不调用对应初始化函数。
) X( D2 {$ v) K- m: _1 A7 e! j/ U比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。  j: l+ o$ z3 j  H6 `

0 q6 j' f9 k7 G8 U! }# qViility (Static)可见性(静态)
7 o' ?" w1 W& w+ ]这个就是初始化代码声明为static。( \- f2 b7 E6 B& R1 |3 N
提示:) f/ T; o- l( {  g6 C& j
A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.
4 Y  B  g5 D" y5 g1 f9 y6 w
  T( J& v" I8 z6 OB.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。
3 A$ k. J) c5 `8 x: t& i$ Q% l, I% r# G# c3 R3 b- W

) f' Y, K& S2 L. c5 V$ d( BMDK-ARM软件安装: k- i9 s- d/ g0 |6 w# k
好了,我们先回到MDK-ARM软件的安装。
3 t. f. j6 d+ Q) q
1 i" i6 w0 s4 SKEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。
: ~2 r  n" d- U! k* ~, F9 F. _- j1 o/ n2 J, s+ `( f
uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。
; W9 n( o" i& ]0 T5 F) U/ }' {( U, o# A% ~
MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。1 m8 q9 C  q# K5 j
) \) n. \. e) g5 A" j2 i' p
1、安装MDK-ARM软件;
! _& H' ~! w. x' k7 v8 o5 s2 |+ ]/ H1 K( v- A/ H* J
2、未输入许可软件为Lite版本,代码大小限制32Kb;
$ W, Q* v) k% n" e7 f6 S% O* _6 T- p, A1 s; n( ^% K8 I4 F
3、下载MDK上的芯片固件包(DFP)。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。
7 u; h/ |6 V' a0 A# B; R
% S. H; H$ S! d4 K" v9 dST-LINK设置. }& R6 l7 M5 F- K; {
1.将st-link接入电脑usb,安装驱动。9 f. p/ A. ]* \1 W6 l. ]
2.在mdk软件中,点击魔术棒工具"Options for Target",4 Y- E0 `; C/ D, @( S5 w
3.在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting# O# W0 C  p0 j, F

) x4 ?8 K  \, s, C; k" p  r 20200418191302857.png 20200418191345700.png
& x7 J0 Z; W% U# l# o# m6 b) Z1 m' e2 ]) _& o; m7 k& @; M
4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。2 @+ R- h5 D0 y' N

: r( G, i- e9 O5 b7 c; O 20200418191425598.png ' `$ c" x1 h: i0 D

( e$ r8 a* p$ [. Q) ]5 N/ H+ k最后我们的开发环境已经搭建好了。
" Y) W$ r0 T. F7 @# C$ p————————————————
5 L; p$ b) G+ v% N版权声明:SCCELE2 j; }8 s9 c) J# ~  M0 ?4 t. T

* B# c- x% {! x+ R7 c
0 r7 ~* c! Q3 z5 e+ o
赞 收藏 评论0 发布时间:2022-10-31 11:55

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版