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

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

[复制链接]
STMCU小助手 发布时间:2021-11-9 17:00
CubeMX设置
( w' L% b  G3 E7 M$ a* u1、在官网下载安装包安装,链接地址;
% p/ G/ _' \# r) i# P3 I  c
, [8 L' ?7 w% ^9 s* {- z2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;
- y6 F) u$ E# x* z4 P0 R2 X  _/ G$ l( g5 D% l$ X0 W  {
如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。; ?1 a9 Q4 c$ e

' U. b- B; W* d( w固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。
; B- S. `$ Q( J3 ?5 Z& t& b3 ?& w) a2 N% l. R; `: s+ W
或者在主界面点击(INSTALL/REMOVE)安装本地固件包。) B1 G, a* J0 s/ e

3 U4 ]0 V5 x/ R+ t7 Z, P+ I8 }
20200418175903466.png
- e6 o9 p) s1 f2 ?$ ~4 g: a
5 l+ l" s  y) h6 r3 e$ r4 ~$ _
3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。; O- v% \' J% a3 u6 R4 b

; V# V! g  p9 L. V9 }7 oCubeMX界面认识4 f% K& H8 o. h6 T5 i0 G+ J

1 l0 l: n0 I% e4 D" }5 H; E
20200418183040744.png
1 ^9 r4 D  s8 C" W3 e

# Z4 h. g( O" ^% [6 XPinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)
- E" ^1 k: T6 k) {4 x1 A6 O) i" A- b, \# D# R
Clock Configuration:时钟树设置。(之后会慢慢讲解): J9 C. A0 ]( v  m5 n
4 G; [$ m- @9 N5 c7 @
Project Manger:用于工程项目设置,输出代码设置。# U" R% x* \/ T& [! d2 S1 P  o0 o
4 ]8 @* J- H* m" ~' u
Tools:用于电源管理。
: q' ?+ L2 p/ s4 X- R: E8 m- v. }9 X6 v& }
上面“GENERATE CODE”用于生产代码工程。! y) C$ j- w+ U/ Z

" D( C8 Z2 J& s/ K% B# I我们来讲一下"Project Manger"里面的一些设置% Q* L* |6 e+ q9 o' k0 b) A- z/ f
8 f  v6 _6 F8 m3 m
CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
% y" ~* {7 l$ D  \) {/ b. b) g1 @2 M( Z. t
Project(工程管理)" `  ~  x' Q' ^# I" s

5 K8 W  `$ i3 @! ^" [" s
20200418184246389.png

4 }! j- |9 y- P' {: u  I
  V4 }0 [/ H; M+ x* p Project Name:工程名称, c/ b- f8 p3 j4 X
Project Location:工程存放路径
- _8 a9 B# z. R  _, j9 lApplication Struture:应用程序结构
8 v7 r$ B* V* N( t3 B% ^/ H9 oBasic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。
" X9 {. G1 D. m7 _, ^
; i5 c, [# M. {+ h' l% F# PAdvanced:相反就是包含中间件,一般针对相对复杂一点的工程。
/ k6 J2 r: o! U+ H
$ W! i8 o* g2 n. @1 M% nToolchain Folder Location:工具链文件夹路径
& t( h' ~+ M  ^; qToolchain/IDE:工具链/开发环境选择
( P+ r8 F  S; v. D& R2 Z安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。7 w! z* h9 I' d- f! a

2 e- K; ?2 Y" R  @! B6 ~$ i6 U堆栈设置:Heap堆为0x200,Stack栈为0x4002 J8 b/ I' F  C, `4 r( R" t" A
MCU参考型号
" }  s. ^3 s9 N9 K7 c固件包名称与版本
+ C  _- g* e" S, U9 b8 W) U& ~7 N如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。; O: m. l" I: E

7 }8 c' a/ m2 o1 D* L& l. k9 n  B% }使用默认固件包
3 j. h  K+ |: h7 d6 ~6 cCode Generator(代码生成)
0 a# a0 ^- j* D- c5 K2 I- n
$ A- P0 O( r# x( a
20200418185548983.png

" t" r1 `% `9 m) b; z9 k+ m; k
1 t" O* R/ @, V9 ^  ^Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。
$ }8 S6 J2 |+ W# ECopy only the necessary library files 只复制必要的库文件。2 g6 \3 h. @  _. J# T: B) a
这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。3 b" ^3 n5 D8 o- P8 w! r

/ E/ S; p/ X  n7 @4 h7 _Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考/ ]1 z" b( e: d5 h! R( n
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件
7 l+ f2 V2 {% N! W+ r# g不勾:所有初始化代码都生成在main.c" v6 {' y1 \- b4 F
. c& ?$ I  Q5 w; a# b3 r
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。5 \% O6 V: \& {) z
2 @; I" H, y  d7 Y
Backup previously generated files when re-generating 在重新生成时备份以前生成的文件
0 L0 y6 P& x2 R5 `$ {2 p3 W重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
/ U: @7 h: d% n1 ~/ n; ~3 ^; |& P9 W$ }  A4 _
Keep User Code when re-generating 在重新生成时保留用户代码
, D9 H8 t8 A& d! U2 `) ?5 a4 q; B6 G4 A* @比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。
; d1 I# Y2 P+ p; h( i. J. O- `4 G: a8 K! a. M) b2 ?# g
注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。
, V  q5 u+ d1 [5 Q+ a+ a" ^0 J: N: e5 s
Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件
. H3 i; ]' I! Z+ `8 U4 q7 C- O) t* w比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
1 q: r# t  g2 i! l
* Z$ y# F4 W3 e, e+ qSet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)
" v, F( g5 |8 d1 `: q这个做低功耗产品时这个选项有必要勾选。7 T+ z8 G  ?0 @+ w6 U0 K

- K% E( c# |: i' D7 d5 SEnable Full Assert 使能所有断言
  @' Z' Z5 M# D5 H# U, O/ hSelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
. ~6 e" Y- [* ?& b9 n( K
# A( v4 _" }- w: u5 p3 s
Advanced Settings(高级设置), X. s9 _7 H% Z/ ]. r9 |0 l: Z/ j% F

9 Q" J, s3 ^+ v+ Q
20200418190332622.png
' P% C3 h0 b" O" D0 ^0 B. t, |- [0 i
) r& h# m9 N" u. t) x+ `
HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。6 e) N5 o2 B8 K0 f. z- p
3 C) a! k) E* F" s6 \
Not Generate Function Call不生成函数调用
( B% H7 V' s% z. m0 E# w也就是你代码不调用对应初始化函数。# J# [8 o- \& c, P
/ _$ U7 X- l$ ~( E# I! a9 z  n
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。
2 x& M8 t9 q& _1 N4 T+ j
# G, _. Q8 X; {  x3 g# yViility (Static)可见性(静态)- ~. O/ u! [6 y# s, V) M" T
这个就是初始化代码声明为static。
* ]" l% L  e9 j$ t* J( k- n+ n9 y$ P5 A  n7 x6 z
提示:
  [8 p' S& A$ A5 x7 e  T; M
( ]4 Z7 K- I' DA.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.$ u& ?7 }% e2 w8 j" v: s
) w9 K' J7 @/ R6 Y6 [; D
B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。
1 K9 B2 c3 t0 [1 Y& L9 S- x/ z& p1 F9 b

% V' a7 P; Z9 j+ [: jMDK-ARM软件安装
: M/ I- ^( \, M好了,我们先回到MDK-ARM软件的安装。
5 Q) t- K2 n0 c9 H" y8 l2 cKEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。5 B" `* @- J8 c- G: i4 R
4 V' d4 m8 F: O
uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。7 r. K2 R# R6 R) ?1 r

8 ^; I8 w/ }4 A& G0 lMDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。
7 P2 [" w" u- l* \7 z6 R6 f, K$ y" k" c
1、安装MDK-ARM软件,下载链接;
+ g7 x, v/ `/ c8 E2 {2 R
7 x0 j# @" X% ]; @# Q9 J$ Z2、未输入许可软件为Lite版本,代码大小限制32Kb;
2 g/ Q! {$ p' V; Z/ }) R8 [. Y  `
3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。
8 v, B) h/ v2 O7 `3 c  I
& I" N1 M+ g" f1 d; _7 }6 C0 \; D4 wST-LINK设置) t- |, I# N8 z- M' v, ]6 N
将st-link接入电脑usb,安装驱动。! M/ {  [% B% C- k% n
在mdk软件中,点击魔术棒工具"Options for Target",
- o5 f* Q: L; ]; S! O2 C在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting( G0 a( ]" s; r
# R' y  l: u6 W6 {/ _
20200418191302857.png 20200418191345700.png

- C5 J! d% h# i: ?7 z
, A; ?9 j3 `9 `     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。1 C- v, U; o7 Q4 {. B7 U( ]+ A

. z& U+ j" I8 j3 F/ J
20200418191425598.png

: e4 z* e& n$ F; F: J) `* }- E+ l# T3 C
最后我们的开发环境已经搭建好了。
* f+ V- x9 s% w) m$ ~; p. S+ J3 I; h8 _) D& w4 S& s! k7 a/ n! V0 `2 ]
7 I6 D1 h- Q( |' v, r' n
$ T5 k3 W4 M8 j3 t+ D2 z( [

$ T' p! T7 }4 Y& c% S4 a* V+ t3 H
$ G( x! ?: E4 R7 V+ O
2 v$ x2 m0 `3 ^. k8 f% F
收藏 评论0 发布时间:2021-11-9 17:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版