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

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

[复制链接]
STMCU小助手 发布时间:2022-10-31 11:55
CubeMX设置8 m& ^) K- u. w3 D* _+ P2 {
1、在官网下载安装包安装;
0 L0 C6 t% A8 {% l' _5 q& g) f. `
2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;
% P# d1 Q/ `: G  b$ I& G, N) \' c6 Y
" U- J) f  g+ B如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。
8 x% B" C1 @" G) A/ J1 K* ^7 H) i* @) x1 M7 o; `5 T8 l) e( l
在"Manage embedded software packages"下方点击"Form local..."安装。
0 k' T, G; {' i5 l( c* T: _, e) L, B' }
或者在主界面点击(INSTALL/REMOVE)安装本地固件包。
6 g) Z6 j# h; M6 m- g4 J
8 O) J) \( m% O! j7 U! D 20200418175903466.png
% T" g' H( n, l! A1 D1 r5 S
% ?* x+ J2 }& a3 E2 Q3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。2 ?% q+ a. s, N: Z' F2 ?/ Q
+ @5 J, W% _% N" z1 U6 ?7 U1 a
CubeMX界面认识: n2 s$ e2 R1 _) g$ r1 E

/ d- h! ~5 j7 L5 S& M9 ?+ }( j# | 20200418183040744.png / A5 n+ r  o$ c
% F8 g" A  D1 X7 h
Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)! C; m3 H5 d% J5 _' u( x! t
+ h- n( _4 R. d4 h5 @
Clock Configuration:时钟树设置。(之后会慢慢讲解)
8 J0 V! [' R8 d' l
3 D! K" Z! {1 t' [Project Manger:用于工程项目设置,输出代码设置。
1 g  v- ?) Y( V' n$ H$ l+ o5 ]9 q+ x7 p* F) k9 r
Tools:用于电源管理。/ @' J3 z$ t, q1 v
5 d1 v8 s! e6 q
上面“GENERATE CODE”用于生产代码工程。* s. D0 B( B$ J1 j

  i0 _2 H& r. A) A我们来讲一下"Project Manger"里面的一些设置
; g5 k6 Q+ N! X8 G2 T  Y" r3 A3 B, u: V5 L$ ]7 E
CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
, K  j+ K. r: x  _- l' ~& n& _: o+ }; h4 e0 e
Project(工程管理)
- C9 O2 P# u2 ]. N8 }+ n' Z7 @2 B4 M0 ^9 e3 T
20200418184246389.png
7 y& f- e$ t. ~5 y. n8 ?6 M- J* C# s0 [7 n# d/ d& x2 A- M" O
Project Name:工程名称  P# L9 a+ @% b( l8 T$ P; g  V
Project Location:工程存放路径
. s' T+ t& M9 p+ p. O1 tApplication Struture:应用程序结构
, D8 j) _- m; @. q* H8 QBasic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。: I0 S- Y8 x' Q
$ g+ D, y% u% l' t3 D: @
Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。
% y2 t. A2 J  \. l, J6 k+ Z9 \Toolchain Folder Location:工具链文件夹路径
! u8 n, P, L8 j7 p8 ]- tToolchain/IDE:工具链/开发环境选择
3 B& D+ T  x- m$ _; c0 s& K9 R" D3 x7 o. y# U9 V  F: g5 e; W
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
& W( e1 K* z" m. b堆栈设置:Heap堆为0x200,Stack栈为0x400
- f2 ]7 J8 s+ U& AMCU参考型号
8 F  I; A- ^5 O  d* C- t固件包名称与版本
4 @9 P% S- }1 n) n. U8 L2 \3 E* D& f& ~: y' c# G7 H9 F3 x6 j8 X! o
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。- n: x" M/ I; g4 G/ |) d
使用默认固件包
! P+ |! [% r( Z5 t% d! u/ Y; d7 ]6 [$ y5 |% w7 W/ h5 b" A
Code Generator(代码生成)
! R, X, S7 j9 S* P7 b& X* P9 |( x% C! z; {
20200418185548983.png
) x: o4 k, V( \! A: y. C. e; V0 G2 j' s' Y6 W1 z3 r
Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。
& w' T) Y" _4 U# F1 k; LCopy only the necessary library files 只复制必要的库文件。
8 w( u* Z- L4 X2 e! \2 w. x+ R2 p+ U4 ^
这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。
% w6 E  Y1 \  d5 S) LAdd necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考& g! Y$ [9 c$ z6 ^: o
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件; J. o5 r8 {  P+ ^# t) F+ e
- ]! B: [; ?! q9 Q3 O' t
不勾:所有初始化代码都生成在main.c! Y8 K& a9 r: f- A5 V5 }

7 ~/ R: d  c* U+ U/ [勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。0 D. m& V! G# N
0 g3 U# d7 Q' r) J1 z* ~/ E' G: @
Backup previously generated files when re-generating 在重新生成时备份以前生成的文件6 t( ~, L6 a) y0 V! l
重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
9 M8 x. `( N; Q& H% W1 j
& C/ X2 V0 m+ `* u& cKeep User Code when re-generating 在重新生成时保留用户代码
! N. f2 P( m+ z: d. f, P比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。
9 `) B1 i  c2 @) b$ L0 {2 B) ^3 d% ^; `  z; g" O0 R( C
注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。3 @% b0 ~/ n& X4 G# x

/ O) t; o, g) {- e  O' ^6 xDelete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件
  a! `7 @7 [+ r  X( t比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
. P+ W- C' W0 v! L& I+ @  w6 P
0 A2 i; k5 d4 {2 ~/ n1 K' `% a, YSet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)) o& M/ a' Q* f4 h( G2 @" f& b  M
这个做低功耗产品时这个选项有必要勾选。! _$ d, g9 c5 p5 X1 o" U6 ~/ B

: v- Y- @9 L0 E; u$ m! REnable Full Assert 使能所有断言
: k) m+ D# P1 b  f) sSelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
1 ?; K. U8 x5 t9 p0 y6 C3 X; P2 K" w
2 J5 h; S8 C  @. j4 K/ k' a8 R2 L( g4 H
Advanced Settings(高级设置)
0 H6 t3 d- D- V; E2 f1 B3 a4 Q* j" ^  y( E
20200418190332622.png * x, z; I) [) h2 R/ T5 Q

8 A% `$ [4 h4 b* CHAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。& b4 h( ~$ E! \0 n+ ]8 }

+ ~2 @9 w/ k; E- m& yNot Generate Function Call不生成函数调用! V3 W$ K1 s3 `! a' B9 p
也就是你代码不调用对应初始化函数。
# F- ]5 a% n/ J# m6 e7 ^比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。
! U: d0 I* L6 R+ [; U: I& e$ K5 _/ q1 ^2 a. a1 a. p
Viility (Static)可见性(静态)
3 O) r( \! U7 H4 s0 \这个就是初始化代码声明为static。, i/ s+ P3 V6 |
提示:+ x2 t8 o& g" I2 D6 h0 I
A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.
/ g) a$ J' }' f' c
8 L! M; w4 {- j0 q: S2 r9 T' D4 UB.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。, b. ?7 Y7 H) k; v5 H8 t% [
; {7 ~: z5 L& w

6 R% U/ m0 l/ g% h8 v" xMDK-ARM软件安装
' {+ W7 ]8 ^( P$ s好了,我们先回到MDK-ARM软件的安装。! ]0 S( P! Y6 _( g/ m

9 F7 p! s- x1 M: k1 R  CKEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。
  n$ y( `( J8 |& B8 w) J1 Q6 l6 ^9 u2 x, z# ^/ }9 g0 O
uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。! z% h5 Z# N+ B0 ~2 V5 l5 V) @, X

- Z; ~& |  [  R* T) R' y, j1 P, C( aMDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。) q5 o( y  q* |7 j+ H$ T1 w8 |% x

$ t* @0 d7 w  ]+ O* ?' I' K' r9 d1、安装MDK-ARM软件;
2 h) f) t0 c# `- V( C5 j! w' i0 G% y; ^+ e& C% n
2、未输入许可软件为Lite版本,代码大小限制32Kb;
. z% i& z6 e9 V4 W
* T8 o/ E1 T1 ?7 C( ~3、下载MDK上的芯片固件包(DFP)。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。. J; E7 F9 N. M, D, j. a

& c0 E  _- e- i+ [8 Z" f: c6 wST-LINK设置1 z' l( P0 M! N- V1 h  a
1.将st-link接入电脑usb,安装驱动。. e( k$ N! L5 `* c2 p
2.在mdk软件中,点击魔术棒工具"Options for Target",
* h: X2 F  p, G! z7 n1 `3.在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting) Q0 o  I" M( k5 s

5 p8 s8 l: ]3 d 20200418191302857.png 20200418191345700.png
2 i4 p$ U+ A5 X! @9 v' ~( b5 J: N9 c* J
4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。
; _( k* Q, X- }. G
: L- g1 U3 w0 e: X- | 20200418191425598.png
8 x; X  s! ]8 O& d9 ]8 z
0 k& o. r; N5 N最后我们的开发环境已经搭建好了。
" H' o4 r4 M4 T  v7 |————————————————4 p8 ~% s' F6 O) U$ j
版权声明:SCCELE! T1 H" Z7 v! j( ?

/ s- G. q* G0 ~) O4 S; w# v) \
/ h8 ?) L, Q3 Q
收藏 评论0 发布时间:2022-10-31 11:55

举报

0个回答

所属标签

相似技术帖

官网相关资源

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