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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 11:15
CubeMX设置
5 I# k) x1 E* q8 j# m1、在官网下载安装包安装
, M# Q# n5 T/ u2 p# m3 \, y# Z/ x9 G: Q5 \8 D& w! H/ U; [$ i  [! i
2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;
7 F! v: @  d$ b( c$ d! F6 m7 H: `5 V9 e! C$ O
如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。
, ?! o% v4 B# q& ?; H) G/ C& l5 U6 }! Z( Q9 K4 {9 v  D  b
固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。0 I2 d; |: r1 w2 q1 [) ~

# z6 j1 v- K5 j. V4 U4 `1 ^或者在主界面点击(INSTALL/REMOVE)安装本地固件包。# v! q: T' D* r, f5 l

) C3 C7 b5 `" Q$ U; e1 J) }
20200418175903466.png

+ W9 n) W* |, R& a6 }/ l; `  m6 t- g
& `- }" m7 Q" `$ @3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。
( P$ l! r$ w) K2 l* Z% v+ L
3 n/ r. C" d% o" j! PCubeMX界面认识
, T" J1 L3 l+ u% W1 R7 L* W( s( T8 |3 b7 r/ O3 W6 B
20200418183040744.png
1 l7 a% V5 p0 {% Y
: ]0 s9 i- Y5 n0 j3 Z  C9 {+ K
Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)$ x" S- Q; Y$ ^# P  F. u  i

9 G6 c$ {, D; `+ t, t8 w$ [+ a) aClock Configuration:时钟树设置。(之后会慢慢讲解)( `; ^: [$ f3 M2 @+ s' O+ Q0 o
) f5 p6 V+ D3 n& q; v
Project Manger:用于工程项目设置,输出代码设置。
! ~9 F& z- b- U; f+ M4 m  a. k) a0 p: _. D% N, |! ?; A
Tools:用于电源管理。
- C, f# j6 `& F8 h9 B! m6 K8 i
上面“GENERATE CODE”用于生产代码工程。; _/ U# L; Z! X9 \$ `% m
4 x( V- q0 g/ z, p/ l8 U5 \
我们来讲一下"Project Manger"里面的一些设置
( b$ H- H2 f4 s7 z
; q& H; W# n+ u  QCubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。# }/ F+ T, [7 j. {. ?/ V
" Z( N- ^, D' y0 j6 W9 K
Project(工程管理)
- [; u/ c& ~) m$ Y
% e" t# K* D  u* i# i  y4 x
20200418184246389.png
0 F, {$ Q6 b- [3 D  J2 O

4 b& P+ P# M: U. |5 n! c: ` Project Name:工程名称
4 W# ?7 h+ u5 Z2 M/ CProject Location:工程存放路径
/ o6 V9 D. |9 d, E  `Application Struture:应用程序结构$ Z$ D4 ~& |" T' J9 W8 u) I
Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。
( c) u) I" o# @7 u# ~3 D( K, ^
, b+ N, I5 z, l+ S0 `Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。
6 \# t* u- ?3 t, Z. I
- L$ J+ i. J: ?$ R' KToolchain Folder Location:工具链文件夹路径* \0 ?9 G' ^3 ]  a" D
Toolchain/IDE:工具链/开发环境选择6 I8 B: D2 ^5 O  P! i& ]# V
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
2 ]; g5 e: }% T8 q+ F
; k) S" J) Y. `' h% s0 L堆栈设置:Heap堆为0x200,Stack栈为0x400
) S7 u$ y; M7 Z" K8 oMCU参考型号4 _6 u% b! K1 T$ x  e
固件包名称与版本
& w5 P7 i2 Z7 [6 z2 |' H如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。
0 J+ l# B9 h$ n% A; L- x" i  B. x0 f9 p
( ?9 A$ k( V% u$ C8 F0 J9 C使用默认固件包* K, X4 Z" e; Q! d+ \! ^
4 v% O' u2 U0 J, v* Z) ^+ G: u) R
Code Generator(代码生成)
6 u* B  F$ _" G$ x# _; Q- R
+ o6 y, c% U1 g0 z0 h
20200418185548983.png
" J6 {1 t, v8 E% K( M5 j8 u
! W; W8 Z5 M4 z; m1 p/ D
Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。6 E3 E4 q% D. U5 \6 j
Copy only the necessary library files 只复制必要的库文件。, D- ?# Q+ X5 {# V
这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。
% f& j4 e  |5 r7 ]: t
" f5 w& s) O; S; s% q$ C$ aAdd necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考
: K! q. f  y  G+ _0 |Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件
6 v/ _+ H& P: ?; S7 [不勾:所有初始化代码都生成在main.c
/ ^/ R5 b' S$ G( P) c2 o0 j- f5 u4 r2 L2 |3 p# e9 B& o
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
6 n2 n) G* O0 x) a5 g  T0 ?( v9 Q& ~4 c# T4 P6 `9 C
Backup previously generated files when re-generating 在重新生成时备份以前生成的文件
. W5 Z( s: U5 q重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
, s; \  Q2 i& k7 Z4 D2 G8 P. G- @5 F% l+ `% E
Keep User Code when re-generating 在重新生成时保留用户代码
5 V( a: L5 p! T* o: P' o1 i# E比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。
4 E$ v) L  X8 I+ W9 U- ^$ @9 G1 n0 }
注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。5 T, A: P. P8 u) S# |

, j- l8 V* |; u; Y5 T& t3 e/ lDelete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件
( I3 R# y) u' t* Q  j比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
( D* L5 K1 _! ~% S* K9 _
  M$ G7 S- ~/ QSet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)& ^" ^# Y+ f2 N# x* m7 I! o) A6 y
这个做低功耗产品时这个选项有必要勾选。$ A7 x1 _5 p5 t, R8 z
9 j/ \9 P! N" C; E% [" Z
Enable Full Assert 使能所有断言
  @: I4 b: F* d- i0 h" _+ QSelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
2 Y. i7 z$ r- Q  F; x
6 ]- V: P3 C" k" u3 g" t, ~
% F7 e+ I: S6 Q
Advanced Settings(高级设置)
  }1 O' ~1 U+ i- r0 L$ C
* Z0 o9 Q( o0 d- u
20200418190332622.png
7 N% r4 m/ _1 n6 V( l

9 u1 E/ n( v6 ^HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。+ W9 Q* T5 z' c" p2 O' B4 B

- g  x/ o  _' N0 pNot Generate Function Call不生成函数调用$ \8 F) B4 X+ g: {( u% ?( r- E9 w
也就是你代码不调用对应初始化函数。
( `$ N* l. u) E# ~5 g* t# d4 }% }# h2 i8 B% _1 y' p
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。
* }- T+ e6 I( P; \/ S
' i2 f, c. r; d8 V# N: R$ LViility (Static)可见性(静态)' z7 R/ `' N/ Z$ b! B/ k+ c
这个就是初始化代码声明为static。
4 R6 U( ?* G! u. v! F: s1 M8 K3 m( {% c) x5 O( S, v5 y6 ^0 ~8 {
提示:
4 d, d3 s: F# v6 p6 `
8 B5 S: U2 `9 A; \# ]& h9 ]A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.# ^" b' x3 M/ ]7 o
8 K7 P1 G$ r1 V: |; K
B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。  ?$ K' R0 o7 u+ P( F6 ]
+ S' r) h6 X: N1 H/ E

+ O& V% v" e! ^. V' D1 xMDK-ARM软件安装
) \8 ~" T, `$ z8 ?0 X/ c2 L好了,我们先回到MDK-ARM软件的安装。. v4 n7 z( `; M! V. f+ f5 R
0 N2 z5 j1 o, a7 n+ y0 {
KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。1 S2 Y" l0 F1 C8 b" I

8 A* A9 L, t% {0 l/ Y# V. q) Q7 |uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。. B) a$ v( y, B( O2 b) n  `
! L. L5 X, F, O+ \6 C3 y2 y
MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。
' \) U5 J+ }4 r1 z5 b  |4 B( Z$ K+ w- e' @
1、安装MDK-ARM软件,下载链接;2 e# y: M5 @0 R+ W7 P& p4 @, x+ v

; E( Y, c6 L8 U% J" y6 t2、未输入许可软件为Lite版本,代码大小限制32Kb;
+ b( {0 P) l. t# u7 Z  K
" H; M& M& H- m' A7 F! ?& [3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。
. P1 f4 }# L# D$ q" S7 s/ n( ]
: ]/ h% n! g1 P! j8 \ST-LINK设置" Q; I6 h' O" G  G  ]/ h9 e
将st-link接入电脑usb,安装驱动。
8 f% d# Z' |5 X8 V8 Z3 ^8 S/ Q$ `. j在mdk软件中,点击魔术棒工具"Options for Target",; L' A2 v/ v5 m* ]/ B" v
在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting
/ o  q( L& v1 \2 q1 u5 P4 L
; n  r5 h: O# X+ ?8 J
20200418191302857.png 20200418191345700.png
" g1 W* s$ @+ s. t
! E- f* t$ n- B" [8 V8 _. I
     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。
  a0 ], j: ^' V
+ W6 X% V. f, g4 I$ {
20200418191425598.png
0 T& C$ ~) k1 n% e* D/ \
; O( v  k/ O- t  E
最后我们的开发环境已经搭建好了。
5 `4 x; Q1 J2 K! L
5 @) V4 b6 J1 P
$ ]! _) x7 J4 g- s# v
收藏 评论0 发布时间:2021-12-9 11:15

举报

0个回答

所属标签

相似技术帖

官网相关资源

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