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

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

[复制链接]
STMCU小助手 发布时间:2021-11-9 17:00
CubeMX设置
# x9 }1 ^" g* G. P5 H/ N3 N1、在官网下载安装包安装,链接地址;6 Q6 |6 o" }. r7 E( `. E
' I/ ?: s* |' ]* B4 p5 r8 C
2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;
4 P$ d' n% f* H6 G8 L
7 t/ w! c1 \& @如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。! w. `0 @8 o9 [/ ^- s6 |9 Q
. S1 M% R$ R$ S# t1 }
固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。! c) f) ]3 a1 V1 y1 t
/ `2 t' u. Y4 L: Z6 W) b
或者在主界面点击(INSTALL/REMOVE)安装本地固件包。
; `/ C) a" i* F" A' _1 O! I( s, w, M* z" U# ~
20200418175903466.png
* a0 d/ J" s  }. O

3 Y; l: ~- H5 c1 r+ t' S3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。3 u9 o/ H4 C: d! @% g5 F8 Z
" G& b  O. y6 }8 U
CubeMX界面认识( P- _+ }6 V1 H

" C9 n; j9 C9 f1 R) S* F
20200418183040744.png
3 h9 a4 E2 s- y! T0 {/ B. C& X1 I
' Q2 V) Q, r4 G$ X4 |* Y
Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)
1 X) `% r2 f  F1 n; K  v; `
2 I  ?7 ?5 ]. o0 hClock Configuration:时钟树设置。(之后会慢慢讲解)
" c2 [" T1 `# v7 _4 D9 T) u% A9 C0 o" o* N/ S1 o
Project Manger:用于工程项目设置,输出代码设置。1 d$ Q# a- B, u% ~0 |, d3 M$ Q
3 I* w  e3 I- z9 ^/ m. S. q0 m) J
Tools:用于电源管理。
5 f) C4 q  W* {% O8 j" G$ v. J8 Z2 V7 K! o
上面“GENERATE CODE”用于生产代码工程。
; F  ~7 Y# g- [
5 J. O5 V$ A* c我们来讲一下"Project Manger"里面的一些设置
3 H/ p% W9 I* h8 N; o
- j1 p$ m: R; ^& n' gCubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
7 K) f: i; p5 K* j/ a
1 j! ?1 T. J( ?: g8 eProject(工程管理), o; t0 M: c; c$ u

* R% Y% J* `4 t# W
20200418184246389.png
9 q# _6 s. M' B! F& z* Q

9 Y/ Z2 Z, U# m* y: \% p- z  C9 \ Project Name:工程名称
8 e% K# P% }7 a9 h7 R  o  NProject Location:工程存放路径9 F1 M& N/ l+ l; E1 W: ?0 C* k% i
Application Struture:应用程序结构, H" F) O; w  a$ b6 l
Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。& i3 {* j2 u/ h* f+ s2 d' q2 i
( m- S/ |/ E1 n. B0 t# T# H- c
Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。
- k0 M: d5 W/ V- P/ @
/ v& G2 {# h$ U: g8 W9 A/ b/ ^Toolchain Folder Location:工具链文件夹路径: b8 w0 ^. T9 Z; p% m$ l, B! P
Toolchain/IDE:工具链/开发环境选择2 ]% \' E/ b4 Y" V
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
/ Q8 L# t2 C, N. T% g3 ?% M
. L0 ?& x4 T' D" W堆栈设置:Heap堆为0x200,Stack栈为0x400
; W2 q( J5 i- I- R& E  L; AMCU参考型号
$ A- F+ h. N& ?3 Z  n固件包名称与版本4 D$ t- X: Y9 x7 W
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。
- |6 C: V' l" m; x
5 X! X: ]. A  B! o9 v% j使用默认固件包; j! X, Z5 u4 w: `$ N
Code Generator(代码生成)7 a/ D9 \6 l4 ]8 x. C
' q8 \& S+ ?7 D' p; P& O  B
20200418185548983.png
3 `. T! s7 ^' z) M8 _8 n* F6 o

! l' F4 N6 ]4 t) i7 T4 E3 }, ICopy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。
, p( w) k( J: PCopy only the necessary library files 只复制必要的库文件。
+ u; X$ l  V7 W这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。4 y& n; H/ H# B/ T& X& M1 R1 H
9 p4 M/ c" V& D- y& X: ~
Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考  A4 t% n9 S$ t/ D
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件: R. N7 V  P3 S3 l" ~
不勾:所有初始化代码都生成在main.c5 c# {1 x4 `. _+ m9 ]: ~1 P

7 A; M9 l# S7 v9 i1 G勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
) `0 c4 w+ E$ `7 j+ O1 {7 @
9 l% u+ ^* ?* k4 wBackup previously generated files when re-generating 在重新生成时备份以前生成的文件' K2 ]' c' N8 m  u
重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
! A2 m- G4 q7 j8 f+ C, p2 k3 q% R9 t& b' I5 P; D
Keep User Code when re-generating 在重新生成时保留用户代码5 ~+ N1 H# y6 `2 b+ D
比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。7 D( m7 v: j! d' P

7 f  O" t7 q! l. Z& `1 ]! X3 M注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。
3 E8 \3 _1 X8 j1 g8 A! \, q$ [- G. r* L9 }3 d1 Z
Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 : k+ G6 e) s/ c$ V8 g
比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
. E( E  \$ t+ ]5 O: V  Q0 a
, w9 I6 T% \9 `+ HSet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)/ k1 j6 r2 [- _; K
这个做低功耗产品时这个选项有必要勾选。$ v7 h- n* d1 w0 P8 G6 G* `
+ o* s) W! G' S$ h* L
Enable Full Assert 使能所有断言
* f/ U% N* r) G- W4 MSelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
- {0 F  K& m8 a) Z
8 f  `* i2 Z; t3 m) w
Advanced Settings(高级设置)$ S9 K8 \* a! W" \# T) w

( p/ l: ]8 Y3 ^# J8 ]+ C. y
20200418190332622.png
* R: r, E& N' D) T) q$ X

5 I0 {" ^! v/ ~" N4 d, ZHAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。( V( N' _+ o" b" e2 b# k
. H/ a- ~* c& W
Not Generate Function Call不生成函数调用
% Y$ i* p7 e6 F# Q5 O也就是你代码不调用对应初始化函数。' e6 {- y! |; ^1 L- x6 D" k
7 ?6 c  U$ w. Z; Y( \
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。: g5 Z2 a6 M( h; p( W$ `
0 u! @) S* g) F2 |- p5 H; u& B
Viility (Static)可见性(静态)% J6 @  c: z3 u0 B$ q$ ?- v
这个就是初始化代码声明为static。6 N& x/ n2 X5 s

" V1 Y) ]9 j( ~提示:8 F3 o" v. [3 }* D9 a/ O

4 Y3 Z# @6 k  AA.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.) W6 h$ H+ A5 Y2 M& e

6 M" f! }- z  e1 xB.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。1 }" Z3 u3 i& E; [  S5 Q
# S. S: q: j$ z; o& ?2 I! w
" j0 M1 e$ W, B3 l' T
MDK-ARM软件安装. Z- o5 \/ }) H" v
好了,我们先回到MDK-ARM软件的安装。
( H- ~) q- `. Y7 j9 IKEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。3 U& y- o' Q# f9 n
) y0 F( c9 C5 h3 F& u0 M
uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。. j0 s1 m/ T- V5 l$ U$ x+ \, [
+ S$ T" _5 a) Z& }3 G
MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。
+ ]+ \8 ~% M3 j) ^! o" g, t4 T
6 z1 J' C* a% f( J* V1、安装MDK-ARM软件,下载链接;
" h4 \9 s7 N. s+ j: }; _+ [
- f0 w: D* I4 h9 F2、未输入许可软件为Lite版本,代码大小限制32Kb;
2 `0 {4 e) i7 U6 x; w/ A; i$ S" r
1 c+ U" s( i& C5 u3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。# J$ J7 Z2 c% g
+ S- k$ w% a8 w4 X/ s
ST-LINK设置; j" C4 A( G* s3 Z+ C
将st-link接入电脑usb,安装驱动。) D8 v1 r% m8 q* E% W( Q
在mdk软件中,点击魔术棒工具"Options for Target",2 @* [/ i! D$ |5 v
在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting
2 \# r0 J' {# b$ O5 q
5 c( Q! {8 ^7 n8 }2 U
20200418191302857.png 20200418191345700.png
: \' E; q$ m) j$ ~2 d  Z) w8 E

* b/ i9 y" _$ Y- }  ?* r- |     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。
, f. O- y( I" `: I% ?) z' B; N. }8 h
20200418191425598.png

/ O+ [! k1 a, m$ Z+ C( E; b
2 g& I# }$ Z1 @) k4 r最后我们的开发环境已经搭建好了。
4 G! p1 v4 z9 a, J' g3 h  i# `' h0 F

9 v! A# Y4 N6 N
- }. B# J3 b9 G+ m/ b
& v! X8 d* x  Q
6 P  F/ G$ o: C. x) p  ]$ B! e8 w$ a7 F4 m" b8 ~
收藏 评论0 发布时间:2021-11-9 17:00

举报

0个回答

所属标签

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