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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 11:15
CubeMX设置" g* K5 \- K' w6 R' ?
1、在官网下载安装包安装" \5 x4 U: \9 d' y8 C2 V2 r- y; d

6 r1 D& P3 ]; l1 y! z4 g" w2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;+ D5 A/ P, D. t: A" e3 n& h# W6 V/ Q

6 P. @' P3 a% o: `9 o. u如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。  |: _0 P# Q# o: A. H
; T5 \1 p4 G) S( j# X
固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。2 \, E* {) p6 A; ~9 Z3 }( a

. c, G- f( K$ s+ \. D或者在主界面点击(INSTALL/REMOVE)安装本地固件包。) w( [* k/ U& K& c) [, b

8 p8 p+ _$ R' M/ Q+ b: Z
20200418175903466.png
% E9 X+ d' |$ A; B6 P! `/ E
- _( T. B/ N- n* n  E9 _' s
3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。4 v; n8 m* `* z7 B

$ c4 G# x2 n9 O! E: @; |4 _8 oCubeMX界面认识
4 P# k+ s, h" Z- _
& w7 l/ [( m/ @8 ]) y
20200418183040744.png

7 _/ Y. i- T  Z0 t) h; d& ?
1 \& P  R$ R8 Z7 m0 J4 U1 o) qPinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)
/ \, R' I, b' n2 r& p4 i9 O
# I) r% |9 K1 }6 a  x9 k3 \7 |5 ]Clock Configuration:时钟树设置。(之后会慢慢讲解)
& p# g* \7 h' G2 x; w/ k
, B+ `: x$ Y' \& fProject Manger:用于工程项目设置,输出代码设置。
3 f5 u6 [/ ^% p* u( U' l7 V! q/ s" h* i/ {
Tools:用于电源管理。
; f( v2 }! c6 J5 I" D* B0 w1 L/ {
4 [0 m( a1 _. ]& e# S上面“GENERATE CODE”用于生产代码工程。
. C7 N  G( ~/ H8 w& L: D5 Q: Q% p0 s/ w8 W. b& c
我们来讲一下"Project Manger"里面的一些设置
! y* s) a" A" O& c# b% u4 [0 _  {5 g) Y, _4 l
CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
$ N( T7 I( T9 e: p- z* A
3 A' A8 g" Y! R# S$ m% jProject(工程管理)
5 b: q, Y( T! j* _2 _( e
  s0 b: B8 E, P. k1 _' v; C9 I
20200418184246389.png
" g/ e. i# i, ^( B
, k# A4 T4 T7 z, y% q" M8 J
Project Name:工程名称4 y) F: h, B4 ?9 q
Project Location:工程存放路径2 c4 \( K( E, u- ~9 c
Application Struture:应用程序结构6 ?: B# o& l/ ], @% |8 j) P
Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。4 J5 G+ r) y  r, ^$ N  B

+ `. F3 _5 M) j1 }7 s# Q7 OAdvanced:相反就是包含中间件,一般针对相对复杂一点的工程。
% |) K1 L: E8 l7 e# A
) z  |, U( G3 oToolchain Folder Location:工具链文件夹路径0 u/ w8 O& ?1 Y1 y' \
Toolchain/IDE:工具链/开发环境选择: ?& Z! R3 t9 y8 Y
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
6 U$ s) i( _( e" ?4 t/ g% d% I9 Z7 F+ i& e) E. e
堆栈设置:Heap堆为0x200,Stack栈为0x400
+ L8 {1 `9 f; ~1 g. qMCU参考型号; z. k+ z) t$ k8 @' {
固件包名称与版本+ k5 I& W8 }- e/ Z7 D: e
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。
1 v" N/ x* f) H2 z
8 d% @$ P5 [  r7 z( k- B使用默认固件包+ r" M" P  E0 P
' N4 d0 ?  u" h' U# f. @
Code Generator(代码生成). J7 w' O& {, q( G- R
. C7 K' I' l( u' d, j7 o6 k
20200418185548983.png

1 l6 ], f' R# h3 E+ E
; ?5 d- h# u  B, q5 Y) [. ZCopy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。
& b' v  b/ v- V: s; j0 P- rCopy only the necessary library files 只复制必要的库文件。
+ z7 o! k: Q6 I+ u这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。5 G2 e2 c+ k6 i% D7 n
8 M, m# P$ _$ q3 A; x* l
Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考
4 B7 i1 g' G9 m2 ?% ^Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件
& i% q7 @8 c( u不勾:所有初始化代码都生成在main.c
$ R4 Q1 L: H! W' B5 R  v1 k) Q1 D( n/ q5 v- i
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
2 p1 ]6 _3 s" S( |, \5 }) M
& n4 C/ Q2 F% U$ _- n% NBackup previously generated files when re-generating 在重新生成时备份以前生成的文件
0 [8 g, \# g8 Z- Z: }9 F重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。1 b- A9 q3 W. q- }8 J& Q0 `* D: g
. I9 W. {6 X: {; h2 S9 f+ X, A$ A
Keep User Code when re-generating 在重新生成时保留用户代码
% U. K; B) b+ I, M* C8 d- T" g# |比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。
; p* v3 s) ^6 K; D) ~
& _" |8 u9 z8 N. g! W注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。9 S- X" T7 K6 e( z  m. [: R) J+ K
- g1 s( u9 A8 l* T# s9 ^! Q6 U  ?
Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 ! U2 \! E4 t0 w! \' o
比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。. {3 U9 x7 w- h4 I* l

: E' X3 |# V0 H6 H% ]" ISet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)
+ ^( O) Q5 ~" U1 |+ A0 }) h2 Y这个做低功耗产品时这个选项有必要勾选。/ Y) }5 k+ p* L9 `
* J; B8 ^* d7 M% y9 N) K; P
Enable Full Assert 使能所有断言
  v1 n, G) O/ Q- P1 pSelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
3 Q/ q' P/ O! P7 l+ T$ V
0 w1 M5 k0 b# G) H& E& R& Y
" E" Z/ ~) r; ]( c2 b- }2 E
Advanced Settings(高级设置)
' r5 U0 e5 I1 y: x' j3 U( `3 J: @) \0 Y* W8 }
20200418190332622.png
' \0 _, q# I5 a/ w9 [$ \0 [& m, |
) E, a4 g& ]8 G' X3 \/ {( n; g1 X
HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。
( M+ h0 G( G% J! J  Z1 Q
- `& H9 k  U5 K8 `2 O; g9 T2 v+ UNot Generate Function Call不生成函数调用
' Y) T4 Q# C$ ~也就是你代码不调用对应初始化函数。
7 f2 g" A' g+ F( Y' F4 ]8 e0 ?# ]7 _. A2 r% b3 u. b- F) j# ?
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。7 f  F# Z- t" V8 f" ^

; ~& s# n" g- f$ Z4 D0 \. m/ LViility (Static)可见性(静态)
, t2 T0 q: c5 a1 v; v+ N这个就是初始化代码声明为static。
8 S$ i6 I, f/ f( p6 O2 f- L& z* D
8 [( X( X( u4 V1 _5 J9 x提示:
+ d; {5 P2 A; p4 w, o
- h2 H$ o: h' C' ^A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.
" k0 _* D7 k0 e: ?4 m8 d
$ q, x$ J1 s( I+ YB.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。) {1 t: K2 w. r9 k. s
6 P% J  G- p" n) @6 Z2 d2 @
6 q9 G. L) T2 o, g4 J
MDK-ARM软件安装7 M/ C) T2 b8 ]$ [6 D/ C
好了,我们先回到MDK-ARM软件的安装。7 Q) |8 k" O  T1 Y5 \
4 \* S1 k0 z1 U
KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。
6 j( V" `  @8 c1 K
# K7 s5 z3 ]8 V. H. _% ?8 ~+ P, vuVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。
# j3 z7 y  y, }: p
( J! W( v8 Z2 a. G2 J. mMDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。2 u' K/ V% u; X# w( s

# v! c! Q8 e8 K) r& p1、安装MDK-ARM软件,下载链接;# k& Z' F3 F, p& N1 C1 f1 Y
: G' j2 z% {! D" L1 M$ A4 w( y( [8 ]
2、未输入许可软件为Lite版本,代码大小限制32Kb;# F  ^$ I- \# S* x

; K/ {$ ~9 u: \: a3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。
: e5 n) P" V8 E0 Z& s) F
: j3 I9 M% h2 k  [3 tST-LINK设置$ f0 ~5 s; P( A2 a, p# Z( P4 O4 e1 R
将st-link接入电脑usb,安装驱动。% n4 W7 C! a( w+ e
在mdk软件中,点击魔术棒工具"Options for Target",5 `- O, g2 i/ s5 D4 P8 ~
在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting8 M2 g/ z* f( ?; h3 m% F

( ^/ S- z6 W- c5 h
20200418191302857.png 20200418191345700.png
. u  Z  V, D" Z! Q* ?
/ S+ l( T% k8 W+ c  x# h
     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。1 H$ I- f# N& B3 E( n5 G
, u' ?0 c% y) N0 l# X, G7 y- o1 r: {
20200418191425598.png

. i, G  a) e: z' B( ^% [6 S. a1 F
最后我们的开发环境已经搭建好了。
! F5 B5 T2 L; I& h2 l
; H  C2 l) _1 {# o( u' i- E" c
收藏 评论0 发布时间:2021-12-9 11:15

举报

0个回答

所属标签

相似技术帖

官网相关资源

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