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

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

[复制链接]
STMCU小助手 发布时间:2021-11-9 17:00
CubeMX设置' g$ S5 x! F' d2 Q
1、在官网下载安装包安装,链接地址;" p/ ?2 d5 r' @

% t4 I' Q' F3 s, G2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;( N* {  Q6 u& k  K9 g3 p# y
  y3 I1 @3 @& M+ @: ^6 D. u
如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。
# d! V1 D  |- l" E# J; H2 j' ^0 N8 M. n" E% r' L  B
固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。
9 d. Q. N6 X; l4 ~1 f5 P
; I- q' I7 @/ A% U或者在主界面点击(INSTALL/REMOVE)安装本地固件包。
/ g, Q0 s$ }$ X; r1 k( {% z% H# j: D0 b6 @7 l
20200418175903466.png

7 I3 _1 n5 V+ d8 q- L' y  V' J- G8 i# r: m$ s& Y9 b7 K; \, Q
3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。9 L: r+ ~# p- y# J' F5 \, v

- p* K3 V& Y0 C9 p  |0 `, JCubeMX界面认识
7 T' m$ l6 K2 V
# x% ]# u3 o2 {7 Z
20200418183040744.png
$ Q2 A! k+ ]. ^$ c

  M% L# i' Z2 z4 \Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)
& z" h" ]$ h( h3 \' z! {7 |7 s3 t. v) x
Clock Configuration:时钟树设置。(之后会慢慢讲解)
* x$ O. a9 O$ o5 {, A: K9 D* i) D8 C4 r; z, t
Project Manger:用于工程项目设置,输出代码设置。1 J4 s- N! O" U9 s& R# T) D

$ p8 |1 W5 c& yTools:用于电源管理。  p9 W8 G! y; `0 p0 _4 B/ H4 R5 V" m
1 z& {' D) i. F- b
上面“GENERATE CODE”用于生产代码工程。: p: ~: G7 Z5 ]: z0 W
( V5 G) x( h9 ^9 m% h4 q2 k
我们来讲一下"Project Manger"里面的一些设置
+ R$ C( E) a( |  Y
! j! h3 \; h: _5 Q) _CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。" G+ h( d5 U& z: Y  j! b- s

! e9 J- Q" y+ T: I% e. g  f/ i$ oProject(工程管理)' h3 V7 _9 L% |% P6 V/ k
7 [. z* U. Z5 ~: Z
20200418184246389.png
+ |  R) g  N0 E. i+ P& y

; y. M9 z3 x+ V4 H Project Name:工程名称8 c$ q9 Q( b5 g: F
Project Location:工程存放路径- I  T0 _* ?- e5 X0 A. v
Application Struture:应用程序结构
. O+ f% t& u# Q. tBasic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。. Q$ Y( m- ~- G8 L% i

% A) E; |* r7 U" l) Y' ZAdvanced:相反就是包含中间件,一般针对相对复杂一点的工程。2 ]+ K4 T! D8 }* e
* q" E  z: [% P
Toolchain Folder Location:工具链文件夹路径
# a. W% e( n0 L( ~" S! S0 |3 mToolchain/IDE:工具链/开发环境选择
6 g- Q: B: y) d4 C2 ^安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
4 F) p) |$ A$ r1 P
" {0 `& d! ~3 Q- O' `# _6 W堆栈设置:Heap堆为0x200,Stack栈为0x400: k! K9 C, l6 H5 W& d6 G
MCU参考型号  G; x. ?6 V( u4 {
固件包名称与版本! L* O2 A  P' P+ `4 s' N4 M
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。0 i" M  \& m- ?. z7 ~
& \7 r, z: i% m# M, i
使用默认固件包
" T' z* N1 w+ ECode Generator(代码生成)3 b! R/ A' y3 W5 B' u" E9 S5 W
4 m. @, s) n0 e" M3 p
20200418185548983.png

/ y8 t& J0 x0 E( r7 o/ `5 b& x4 z6 j
Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。' t- M% d' z4 w" E3 @! A/ D( l8 @
Copy only the necessary library files 只复制必要的库文件。9 |6 j, j2 x* B+ C
这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。1 q; s. [6 x0 R. B" ]

" J3 w8 N0 U( i* @6 g" F1 b+ aAdd necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考
. V* I+ h# V9 I# [8 r6 b* O# G% BGenerate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件
! D; a. z  ?7 g! d3 Z不勾:所有初始化代码都生成在main.c
, v+ e0 @& ?2 O' l0 }3 t7 B1 t/ V0 T3 `9 Y0 y
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
, Q, T, @" |" M& z
* _/ f" m% r) Z' o* BBackup previously generated files when re-generating 在重新生成时备份以前生成的文件
4 A9 e* w$ S* ]) i9 k重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。* F0 P0 _) h6 t1 u5 }6 u
7 y/ t. z; E. ]! F
Keep User Code when re-generating 在重新生成时保留用户代码+ W6 ~2 m1 s+ L" ?) ^
比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。. l. h7 a- H2 k
4 S% I  J$ o  {, \( n* U  J- l# f
注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。+ |# w, ~! P# ~3 t; ]
1 Q* b$ ?; z% D# e* G
Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 + u, E. U$ z  n% k& n- H# ^6 A
比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
! P! z& w& K( \% o  v3 r6 X( H* n
Set all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)
/ ^. N+ j- J3 ?( Q/ h这个做低功耗产品时这个选项有必要勾选。
6 [8 j; {: @2 ~
; A: |3 r. G1 s1 W% {$ dEnable Full Assert 使能所有断言
- B$ G" m( v( n. l8 B0 KSelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能). ]# O: ]* v/ b# N

( d% x, {- P$ _5 z% j
Advanced Settings(高级设置)
0 Z- a/ k8 P% @
  p/ K: W$ N3 ^' u
20200418190332622.png

* ?4 G+ g( x9 l/ E5 I5 F
& |. N$ \( b9 p2 [8 i# g* sHAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。
" G) H1 u& u$ h" r. k
, j) E- b; a/ |4 rNot Generate Function Call不生成函数调用" K4 ?3 X# c9 N8 l, ~9 A) Y
也就是你代码不调用对应初始化函数。* w  w0 f/ ^. f4 p$ r, q

2 Z( F4 Y6 R/ r8 y' n5 X# e: n比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。) }6 b0 b$ E7 n) Q4 F1 _# }' o: g! _- P

7 I" Y  l+ x/ A* E, lViility (Static)可见性(静态)
. i5 Z3 {1 a" |% @5 @, l) i4 `# [这个就是初始化代码声明为static。
  f3 @1 J+ D  c. K5 Y
' [6 z3 l% m3 a/ Z提示:$ w# b. M. d5 o, B
+ A0 a" Q) ]) p. i+ j; X
A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.0 u  l* H6 s* ^* S$ l/ R( y' z
. }1 g' v$ v* L4 ?1 H$ t# p
B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。
8 P- h4 P0 G, B3 R/ I
5 u; E9 `' z* ?- V! q( A  J. g: O) [# L# M* |  h3 `
MDK-ARM软件安装
/ n& |  @+ W. d# c4 R' V) ~3 Q" s好了,我们先回到MDK-ARM软件的安装。
) L# Q5 e  l: M$ kKEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。
4 P6 e! q% i  F
6 }$ {& S1 [2 p* X$ ~uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。
0 n5 o1 r& v5 _1 R$ w! z$ a  \) f1 a$ b
MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。
0 u1 v, @& G  ]5 k% s2 V
8 z5 {3 [% k% B3 C& c  N0 U1、安装MDK-ARM软件,下载链接;
) [. Q. ~+ h& `+ J$ q* Q5 P( I7 q
% a. I  C* O! P% z. }2、未输入许可软件为Lite版本,代码大小限制32Kb;
; a4 z" Q: B! I: `2 ?! z+ L% {/ h" S) i' x
3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。
0 N2 Z* b( |( K) D& K
8 p: R3 L8 g# t7 @ST-LINK设置$ U3 l" o/ g5 |8 T0 n
将st-link接入电脑usb,安装驱动。1 a2 d& x) G/ B
在mdk软件中,点击魔术棒工具"Options for Target",$ h5 O! M! c" w, @" Z
在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting
3 m8 I$ q/ ]- F: m. K7 ?- \* C/ A" k6 g' i5 [( @' m
20200418191302857.png 20200418191345700.png

) @  X. d, B! O2 T5 H! }. k0 M+ ?" d2 i1 [, k4 Q
     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。6 E( B; n+ A' c

% `# W$ x/ B7 ?2 c4 n' b# v
20200418191425598.png
0 ]3 W7 d, |  W8 L/ X% k& P: B
5 b4 R( P1 ~/ j. S8 A8 y; |
最后我们的开发环境已经搭建好了。$ X  N; s4 ]& ?
% K, z( [- C8 a: B" i3 p. G

1 L0 [& _# r1 ]4 z- ]# X" L) T: |: q  `# Z8 N- f& V
; I; y' A* f2 n
, N& D- O& u" w. [3 G! ^" {
* @) X$ V2 U8 _* P3 M+ e, P
收藏 评论0 发布时间:2021-11-9 17:00

举报

0个回答

所属标签

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