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

STM32G0学习手册——开发环境搭建与熟悉(CubeMX与MDK5)

[复制链接]
STMCU小助手 发布时间:2022-10-31 11:55
CubeMX设置
: i( }- K+ L& m: [% y1、在官网下载安装包安装;! y+ Q( {. @/ n2 A/ E
% O7 B+ s, y, v2 ?* o$ N
2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;
4 i) k8 t+ v" p. r- c, M) k- M: q# J( l9 x; o
如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。( _8 @) T" m+ z- q

" ^* [3 M/ O2 V. a4 s在"Manage embedded software packages"下方点击"Form local..."安装。4 [9 Z! y6 v+ Y

: o, ^& G4 D' o" I/ ?2 T8 e! Z或者在主界面点击(INSTALL/REMOVE)安装本地固件包。7 J' \) \7 V% B
- L" n% J4 g/ w
20200418175903466.png 2 f8 j& _3 I$ Y/ ~- @& i$ ~
4 I; t8 \) J- _; Q
3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。3 }( i& N+ a3 x( E

& S5 B" i6 Q, u1 L1 W! l& rCubeMX界面认识  ]& k% ^3 [; F# ?+ D" e

% L/ P7 q) w$ ]) t4 i 20200418183040744.png 1 C& r# r; w& ]. \4 I6 t& @

# H9 k% ~6 V! G. TPinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)* O& p, z  m4 \, W4 N
0 p5 r1 E- W2 h( Y* s
Clock Configuration:时钟树设置。(之后会慢慢讲解)
5 p: c( U: }: |4 b3 z: A
, r$ d+ l2 i( |- I' b; v8 N8 PProject Manger:用于工程项目设置,输出代码设置。
, |1 B8 T& u: X9 [# Z% @) f, g8 V* x0 f! B4 i2 N1 d
Tools:用于电源管理。0 O9 u( Z* t/ `2 [& T

, W- J' Z8 d1 G- V+ M上面“GENERATE CODE”用于生产代码工程。
" L% S8 N9 t4 m( E7 M! G
1 M9 f) Z" q; S我们来讲一下"Project Manger"里面的一些设置5 O3 j  \7 H# {$ X3 k; M- ~

0 ?+ j$ `' @( p) S3 ]$ A/ R" W; L+ jCubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
# K2 u! u( d. ^6 ^4 [9 _" S6 {+ V* @  p, j7 g1 I
Project(工程管理)
3 R0 _. t% X$ B/ b: M' B
. X0 p* v6 \, ?" ^2 y0 \ 20200418184246389.png
0 V0 y# h- j& h: m- H4 u/ n8 X0 i* k: V7 D5 D
Project Name:工程名称  B5 `% x& n- U2 O/ Y2 O8 M
Project Location:工程存放路径
1 z& N; \" s) H; N! DApplication Struture:应用程序结构' ]" R3 h3 @- x! N% F6 _, b, i
Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。' x" ]! V; y' t) h& H: {2 X. q& M7 ^
/ q! t9 A5 i1 \! }( I4 x, n
Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。$ f9 e4 ~) [" B! F3 o, @' s
Toolchain Folder Location:工具链文件夹路径
, A1 i5 N( a5 z" U% MToolchain/IDE:工具链/开发环境选择
4 Z) @1 k! F8 p0 ~3 ^( _. ^1 }: f3 R% \( J3 n& t2 D* l
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
8 A, g) E$ ~. C0 [& X7 }# F堆栈设置:Heap堆为0x200,Stack栈为0x400
- A& o6 ~3 M0 x" ?3 W/ T: @MCU参考型号
1 g- w' G* @  V6 z: r固件包名称与版本
1 [4 Q2 t' E6 w  C# T* \2 W% N) Q0 H7 i( a( Z
如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。
5 x; @' H2 y. W8 P/ Y使用默认固件包& h5 e+ G% S& m, p' z$ _7 o0 o, R

% h: u9 b; c: [Code Generator(代码生成)
8 J' }; S7 S/ ~8 I7 K  b
3 m1 i5 `1 r+ R% L5 Q# n 20200418185548983.png 9 g9 I4 j+ b: |$ L, z. ~) Y& o

  n8 |! g, z. O1 vCopy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。. _" L( _$ i% _0 j6 _+ l
Copy only the necessary library files 只复制必要的库文件。
( m- n( \' W+ ^2 k$ {2 x
4 }4 w, v2 p) e, Z& {( }9 F6 ~( I这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。& Y7 K- l8 l" X  H
Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考8 G- H0 S$ Y) V
Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件  F  w+ T4 o5 H
% I% F  m) }+ R4 m0 g
不勾:所有初始化代码都生成在main.c) {1 {& I% r- Z5 w9 s5 ]) h, G+ f7 ^
5 H6 _2 v5 \6 z
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
) m4 `' b9 {, F( S9 E& r% A2 R& L: J/ _, q1 F8 ~
Backup previously generated files when re-generating 在重新生成时备份以前生成的文件* ]" D. o$ K5 [2 a" W6 ~
重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
, j# p8 t7 p; ?. _3 J% u; g8 V$ s
Keep User Code when re-generating 在重新生成时保留用户代码
* B6 g6 ?3 M' V3 @' [+ r比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。* Y2 v4 E& H8 x# I, m
9 k7 O# b6 F& ^+ i
注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。2 P- o) `) I) D" [$ }, q

4 x0 h% P9 p! a* W4 U8 J' kDelete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 2 M2 |& d) i  q9 x8 O  f
比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
) r4 K0 P+ Y. k2 I2 D) t
9 y! `1 W& `* U$ Y* PSet all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗); ~! J! V+ a. C1 ~% @
这个做低功耗产品时这个选项有必要勾选。9 ^" B" ~9 Z/ f) E. E( s

/ u- B% j7 F) b( pEnable Full Assert 使能所有断言/ N! A$ W% L3 X6 [- L0 N
Select a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)
& g5 I% i) Z; N# g$ W# l! \% g4 i  g) M: u
, U4 m& C; f7 S' o( a5 s. ^4 @# ~+ |
Advanced Settings(高级设置)
2 Q, y" I: S$ C$ p( F% R7 p, Q  B
& a1 B' s$ s3 \9 m4 T0 v& S 20200418190332622.png 0 W" ^2 v& u5 i1 e" h# Z% h; M! r0 ~+ K

2 ?/ o) I4 t7 F$ JHAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。
) r' S$ y2 Z8 X( d6 N& @
6 E0 k& i" e7 T# q9 _Not Generate Function Call不生成函数调用  z0 o# a+ p1 g+ }/ X
也就是你代码不调用对应初始化函数。
* C' d' g: Q6 T7 q' ]' `比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。
: u2 `; i  X" W" h
% J9 [) y! V+ E; n6 YViility (Static)可见性(静态)9 g7 p6 r1 a' t0 u
这个就是初始化代码声明为static。
' D: \, a! r' ]" n. B4 h提示:$ B5 e+ F; A' p1 D/ e- p) X5 w
A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic." }) p2 j6 _8 ]0 L; H0 y1 u

4 z2 O1 Z% `$ r& VB.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。7 |6 l- g2 G- ?. v; s

% J- c( N7 s- T) |1 u0 K
. v3 }" `2 a3 s% j" cMDK-ARM软件安装3 u) U  p/ h: \! o) B
好了,我们先回到MDK-ARM软件的安装。
: m1 L, W5 }0 x  n: ?' s" Y
! q* u$ L& m( G; N1 b* }KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。  l; q- L, V( z

. ^- c8 O! B5 v6 juVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。  m) G- K% f, N) y2 Y0 |( ^

8 I3 m8 y; l* C. \# rMDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。$ Z. T: F9 g5 a" k5 i

7 D4 g  O& J; d; F, T! M1、安装MDK-ARM软件;) a% V, H( D4 l1 F/ s
+ B) I; S% C7 P* n
2、未输入许可软件为Lite版本,代码大小限制32Kb;$ ?+ ^& D# p. h& Y

8 }8 x. R; J# J7 W$ N9 l( B, N: [3、下载MDK上的芯片固件包(DFP)。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。7 I% k7 C) N8 g0 L! C" `
& V  P! y; s/ ~
ST-LINK设置
! x, `% G% a. C1.将st-link接入电脑usb,安装驱动。! l. Q; P0 H1 h; y$ g
2.在mdk软件中,点击魔术棒工具"Options for Target",
  C' r+ c, |& P6 s0 Q7 Q3.在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting
* [/ }" G3 t6 d0 I) {9 T- t* \$ o4 ^7 f% ]  g
20200418191302857.png 20200418191345700.png
3 ~+ C! a& B  K; }* w9 h
( ~: f; O' `, a! l9 K5 F4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。* e0 k. G- X9 s8 V  z

( m3 u6 Z9 Z/ v1 o7 `0 g: U! i 20200418191425598.png
2 Y: A. v0 e3 L' D2 a0 j1 f, R9 |' ^, A0 ?
最后我们的开发环境已经搭建好了。; m. B& O& c% z: P) C' P) L! ^+ C
————————————————' [+ H0 c8 e+ j% S8 D
版权声明:SCCELE0 x& m0 ?/ k" f( Z2 X- G# W

  [: J8 q) h% p" ?$ L
8 R6 q0 F5 S% a3 U+ g4 E
收藏 评论0 发布时间:2022-10-31 11:55

举报

0个回答

所属标签

相似分享

官网相关资源

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