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

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

[复制链接]
STMCU小助手 发布时间:2021-11-9 17:00
CubeMX设置+ p6 T1 D0 \3 b, l; r6 Y
1、在官网下载安装包安装,链接地址;
6 ^" S- Q  u# m! s1 l1 e& y( d! f. G' B" G  L3 C
2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;5 S! C' u! q  Q* D( x8 y  r4 D
( `; G! C6 U9 o, @
如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。
. ~; A( ^% t- y* F
  h0 C; b( Z! f, q固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。5 ~- r, m9 H5 D& m3 C" `/ P2 ?
9 G7 |7 h8 Q6 g5 v
或者在主界面点击(INSTALL/REMOVE)安装本地固件包。) z) Q9 [0 g' U& O* Q

+ {# L/ [8 ^# @
20200418175903466.png

+ Z( P) i& r$ E. e/ N) _+ I
% z( P1 C7 q: ?- W8 [3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。* @7 C. E8 x) E2 D3 |# Y
$ A( }/ `: g. k; M: K
CubeMX界面认识
5 K+ {" x; n! T: b9 Y* r5 l7 C
$ D2 K3 x8 E; S' K4 `1 f
20200418183040744.png
7 T/ B% s- i0 N: e
; r1 D2 Q  m( B! p* @" i
Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解). N+ }% m$ j- Z

5 Y. {0 U& w* j$ B' g1 pClock Configuration:时钟树设置。(之后会慢慢讲解)+ j; Z" M! ?1 S
3 v" ?& k; E+ k6 ^# x  O
Project Manger:用于工程项目设置,输出代码设置。" N0 O' O, [  T5 f

5 a8 y  U* |9 U1 w. `& L9 s6 @Tools:用于电源管理。! A* |: ^/ \6 g
( a, m/ q: x2 S
上面“GENERATE CODE”用于生产代码工程。9 `) b" Z: r0 L. @1 d! p- s) H
, k5 K$ D) P2 n8 ?: z
我们来讲一下"Project Manger"里面的一些设置
* W" {7 `9 |, {# S9 p+ C( E* P6 y: Z! p6 T! D
CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。' `) W7 ]8 L. `
" c7 ~3 o' b5 _$ u, B: S0 }6 T% f
Project(工程管理)9 K  j% H5 z. {$ R& c# Z) {5 `; [) q. Q2 C

/ h7 [" V4 s1 p3 \# f" k' v
20200418184246389.png
( O$ o, h3 \; Z& V

: {: S* x1 u* j. J Project Name:工程名称
$ i: r, ?+ i- E8 @/ ~Project Location:工程存放路径
1 _* ^* h( M; a( E' Z* m0 [' vApplication Struture:应用程序结构5 W! J5 n: }5 r
Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。
& j$ N0 X! s# |- S6 m7 j# j9 Q$ y; Q( }/ u6 Y, o* L- J4 W
Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。. [4 J4 |6 z1 ]
  \7 s5 D9 q3 {8 z! @. `: ~* v
Toolchain Folder Location:工具链文件夹路径) ?' T% |+ W) Y/ s
Toolchain/IDE:工具链/开发环境选择- }5 L7 T' |4 z4 F5 S' a% _3 x
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
" |- e; Z+ C4 D; r- t. Y* T1 r* A& r# B$ L. y4 Z
堆栈设置:Heap堆为0x200,Stack栈为0x400) M0 [8 a4 u3 h7 f" D
MCU参考型号" c% z( s" [. {; H9 g6 X1 l' r
固件包名称与版本* G# \5 z" R4 J' S
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。# Z4 J& y. a+ E" v+ A$ L

) Y! e) H7 \2 V6 w' I/ `使用默认固件包
. z0 b* p% z- `( `* X: F9 L5 TCode Generator(代码生成)* }) H% F& n8 W+ l/ ]# L9 l2 V/ Z
5 W% `6 X/ V3 ~5 M3 q
20200418185548983.png
: s9 B9 W* V) u. ]4 ?

( c/ v/ {9 {  H5 `4 r5 W+ kCopy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。. U8 ]! O: K( [6 M  l
Copy only the necessary library files 只复制必要的库文件。- Q; E) k+ ]4 R3 T: k7 ~# Y/ G
这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。# }8 X* |' f! s+ {  @
0 b4 v; S0 W4 }) V! o
Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考- `. |8 b  w" m/ O/ c
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件
8 l1 i# h* x  L- a4 m+ l不勾:所有初始化代码都生成在main.c
) K, A7 P$ b$ h( ~% _7 ?, w: A, i+ _& W. P
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
7 Z$ Z5 `7 ~2 o* ^: P
& s: g: z  P, rBackup previously generated files when re-generating 在重新生成时备份以前生成的文件
7 p& K  g4 ~0 H5 {. c& d重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。" c1 L8 S! j( I

4 G9 s( z% z  B9 O2 i* eKeep User Code when re-generating 在重新生成时保留用户代码/ y* e3 {# p, C0 N' v: p3 }
比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。
- b1 x" A+ m3 A; M
1 S3 D! P0 B8 p* i/ m$ R8 ~注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。
  U" m  y1 F/ x+ C9 u/ u; q) W8 b* ?+ n& l
Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 ! e" W; r# k& R) f0 p) w
比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
$ u& |$ k; _* x5 e7 q! u6 Z0 I
. L4 t% m2 F! l) C$ Z" ASet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)# e7 g! Q& a+ y6 z0 h
这个做低功耗产品时这个选项有必要勾选。$ E0 M) t" R6 f  C% B- o8 f

1 o! d2 R0 h1 o0 n7 dEnable Full Assert 使能所有断言
% F- ^. \: ^) ^0 M- F) Q. S2 NSelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
7 o8 s4 E0 E3 l% i8 T
! D: S6 |4 l# y- z
Advanced Settings(高级设置)+ }" w  e) a- t7 `5 V: V& l

; o; X- v- W/ h
20200418190332622.png

7 z# K' Y  v3 m9 q5 \9 W9 m+ s6 V5 ]8 T5 f8 D4 f2 m: x  Q
HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。
+ x4 Z( O- e. H+ ], d7 }) Y
) s  ], ~4 b; n' A; _' _9 ]+ TNot Generate Function Call不生成函数调用6 g+ z2 ?4 n5 g2 p1 D
也就是你代码不调用对应初始化函数。
( w& T. V4 Z* e0 t( X% |( I. e% Q+ o* _' Y2 j
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。! t5 K6 s" C7 o1 A/ _, Q* t6 D
3 v- a! e- I& @( K' l: @9 J
Viility (Static)可见性(静态)0 m& x  V* n! p5 I( k
这个就是初始化代码声明为static。' L+ _8 f8 \. q4 n, d9 ^1 [" n( h
: F" a1 c  h' X4 |8 ~0 g
提示:
6 j8 M8 {6 F( A0 g% X* G% F# k9 N0 u+ K4 O0 B: o
A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.
  ]' m/ R2 M& E* x; |7 _1 {$ B/ i3 x$ c5 x* l+ |& K
B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。# t3 ]! b9 a/ E# G* q
1 y" Y# m$ J& U% @6 {- d

8 G5 H% v& J0 FMDK-ARM软件安装
% k  Q9 l- z+ v1 e* z- u( t好了,我们先回到MDK-ARM软件的安装。  e. I9 T- t, e$ ^  ~% l# m
KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。6 A5 ~; `) X- K
5 ^( K6 g9 L5 X" j+ A
uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。9 p4 _- @1 o4 ^7 M5 E$ ^" G. N; v7 h

% ~- H* c8 U5 N9 I  `4 `2 fMDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。
2 U; F, t. ^& U" O$ B+ u/ x% _) v6 g9 n+ a5 X5 x' w: Y. h
1、安装MDK-ARM软件,下载链接;
9 H$ U: N! Y2 y) D$ r8 A5 c. C3 Y
2、未输入许可软件为Lite版本,代码大小限制32Kb;
6 |1 r9 K) g$ B! i) y  n5 F/ k9 f. h' c( K3 [5 r2 S9 t4 K" Y5 _: |
3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。
5 v2 L# M- v% g0 P6 p% p# v" o
/ b! E$ N4 [/ Q, d# l1 jST-LINK设置! b) T) z8 r. b' j/ ~2 j
将st-link接入电脑usb,安装驱动。5 }& x6 C$ C* H+ y
在mdk软件中,点击魔术棒工具"Options for Target",( i" Z- |# {$ ?' z: e  R
在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting: `4 z6 ^( {2 I" M/ p/ [' H7 }7 x
" @  k6 O' k5 `# W, E4 D1 U8 N, j
20200418191302857.png 20200418191345700.png

0 o6 t0 R: [; g- O0 L$ w$ p7 N7 t; I* P, c: j
     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。2 I! T0 I( q! l5 d; H

6 T/ v, h4 {& _2 i1 a" ]& F
20200418191425598.png

+ c6 R; K. R% G7 R4 J: |3 ^2 j* y3 p7 @
最后我们的开发环境已经搭建好了。
) [: |% }* t6 j: ^* M6 d
1 O4 w( Y1 j- B0 k! i. z6 Y) R$ Y
4 r! `5 a: |* r4 J1 z' K7 J  m/ C  Q- F. P. D) ~9 J/ G

" D, W$ y2 S+ s* F3 O
$ z3 L  G7 F  {; S% d" J$ S" J3 ?0 J2 w* [2 y1 G7 n
收藏 评论0 发布时间:2021-11-9 17:00

举报

0个回答

所属标签

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