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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 11:15
CubeMX设置
3 c* A, g: M& `4 u  t1、在官网下载安装包安装
6 ]# J# z9 K8 \3 T# L4 N0 ^* @+ r1 \1 k7 K
2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;
( ?/ W" T  g5 U
+ r0 i6 ~1 q4 V0 q7 u如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。
( R; O- ]# `: N7 F  N" J1 d+ o( D- L; e( x  }" y+ @% Z8 `) \0 Q# G1 P
固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。8 T$ d: T% R( R( U: W% G
: |8 y0 U6 e* T+ o" w# ], ^0 v1 u
或者在主界面点击(INSTALL/REMOVE)安装本地固件包。
/ K' d; a! a& S, o$ }9 R1 S$ p" N0 G4 Q- S3 p
20200418175903466.png

/ U) }+ }- n8 \) r
8 U! u% `5 [/ m3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。+ N+ Q9 o5 h% o. q' t
; F7 p. ~1 p' L2 j
CubeMX界面认识- x4 u% t3 `  c+ n( h% q' P

  Q3 l4 O% g2 K; l7 a2 B
20200418183040744.png
9 A$ G. V' x" l( V5 k) n3 M3 K
7 N+ |, n" F& N6 q( S
Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)) ^8 m# f$ Z& y

! V" ?: H2 `4 h: S3 r, M, rClock Configuration:时钟树设置。(之后会慢慢讲解)
" X0 Q' {) J8 C9 f8 z9 @
4 r8 L: D- G: t" R; CProject Manger:用于工程项目设置,输出代码设置。' H& w* j# A. ?& ?) O& F

/ e) j) n( W- m/ ]+ ?  Z' iTools:用于电源管理。
" b/ N" j5 m* M& H3 c' C4 w% h) e+ T1 \/ w, _$ ^
上面“GENERATE CODE”用于生产代码工程。
# M/ O. p# J+ n0 `9 a( x3 x* T' M
我们来讲一下"Project Manger"里面的一些设置6 n. M# K7 W% R3 {
7 {9 E+ s: h2 Q3 X* P6 ?- ~" v
CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。
% H3 S( B1 g; B  v, R* K' M: f% p9 q' d4 L$ ?" S+ j* h. x
Project(工程管理)

0 Z* o& I. [1 ~, p4 V. v  X$ A5 q) h2 Q) d- t2 k# T$ j
20200418184246389.png
7 P! N. ^: u! p

; d7 C8 M# o% [& u9 |* `0 t* V Project Name:工程名称4 Z3 K; F$ V$ L1 m) ^/ W0 j
Project Location:工程存放路径1 a) B% S) k( U* Y; v2 D
Application Struture:应用程序结构9 N3 @* J1 |" r. P$ j' _4 E. [( }
Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。. S" ]9 g) X9 J8 D3 r: O: @

  t2 c: i. v/ v  T; LAdvanced:相反就是包含中间件,一般针对相对复杂一点的工程。0 z& }2 F" j4 a& w' v2 c$ h- @/ @
+ T) P& p9 n+ K" _; @5 _1 G! \
Toolchain Folder Location:工具链文件夹路径3 {& W4 b  U6 r5 h& I
Toolchain/IDE:工具链/开发环境选择* `* i, o3 X1 t# J% `
安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。
& f& f3 m- [9 {7 j/ m0 g. m( ]% w1 b9 ?% m7 J0 F! l  p
堆栈设置:Heap堆为0x200,Stack栈为0x400
4 T7 m# U0 i% Z8 Q2 uMCU参考型号: c+ L* u; }6 ?
固件包名称与版本
# r, Y; R0 S4 ^' {# B+ ]! F如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。
' K: x. c/ \5 E4 {0 ^
# U. ^9 \" S) {使用默认固件包" }# ^+ ~" E6 L/ R4 }
, ~  v. ?( U% O$ o
Code Generator(代码生成); I! X6 b% L8 m9 h% x% V( Y6 @

5 L) u# H4 R- G; ?9 B
20200418185548983.png
& {  a* k# j  \) b
4 t. F- t' [' E4 O8 I9 T
Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。
2 X! J$ F0 Y  P( h$ O  dCopy only the necessary library files 只复制必要的库文件。
$ J8 Y3 n6 N# S3 ?* U这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。9 w" n6 e0 Z% G9 R* }$ D" I

/ R$ M) u. ]& X% V- `# OAdd necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考
, f, b2 @' T' r8 o, n# O6 B& g, @Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件% _  l0 ~  P% [8 P2 U9 K
不勾:所有初始化代码都生成在main.c$ B1 t2 P: M; f2 Q* g/ v4 H7 U2 ?
2 R6 J; n; p, p
勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
8 Z( l9 T: w* B7 S) O- n' Q2 [4 X+ r/ T. }
Backup previously generated files when re-generating 在重新生成时备份以前生成的文件! J6 }. W  E' W4 {) v7 B9 U
重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。( O0 F! d" S. S7 V0 m7 x% {

, [9 @, S0 m$ r% u" LKeep User Code when re-generating 在重新生成时保留用户代码/ l3 G! z0 M" h. H% Q! c! K! u4 K
比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。
: e0 ?! A9 j! p" O) ^3 j0 d
; N2 g4 f( q) @注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。# a% Z! U& s$ |- w' V4 k! H2 h9 D

' _& o8 p- _! V4 J9 y( ]Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件
7 ^9 D; _8 D/ u$ ]比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
+ N( H6 k! l% [1 J/ _* C
# j* R: `. H2 ]Set all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗): k/ c! {6 W# i9 o' R; p
这个做低功耗产品时这个选项有必要勾选。! d' w6 t* S5 c! v+ A6 Q+ O/ z1 Y2 s
' I0 ?9 o4 \5 ]% N
Enable Full Assert 使能所有断言
  N  |7 k; z$ h6 mSelect a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)' X. i- ~4 {, `9 F+ R, r3 x7 X

# J6 ]9 `! x( ~

$ N) M  D. x: M. e5 sAdvanced Settings(高级设置)
6 ?" L/ y/ o1 v+ q  W
& b; C# r+ G# g6 N% L  p' [; l* S
20200418190332622.png
7 e2 b* U1 L, S
0 m# O6 R5 q0 `& g5 E
HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。
: p# G2 g9 U* D" z  A# c6 S" G0 z+ T3 C6 i5 n( u
Not Generate Function Call不生成函数调用
0 q* J9 s& Q  a- h" k也就是你代码不调用对应初始化函数。
" p6 t& l( `5 }( f' l( m5 c6 x8 v; B+ O' d' H4 ^  X8 t3 r  i
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。
, y, K1 P8 n' h' R8 t3 k, K0 o& ?' i7 @' O# X
Viility (Static)可见性(静态)1 d' x0 |( k1 U$ h4 w! K  R7 Q$ n. b
这个就是初始化代码声明为static。
; w% f: j4 U( {& H- m# U4 u2 F$ R1 T' B9 y& ^
提示:1 J' D. _4 K7 n0 ^5 C3 {) j! ]

1 W* R- t- ]- ^0 F( u" Z, v5 eA.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.# v' s; r, P  f+ s6 |6 [+ F7 T

9 H0 r2 ?) Z5 ]- T7 L6 d2 l5 fB.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。* V. e" H' o% u! D) r

7 `- R+ K% p* Y6 c) k8 a
& l1 t, B. Z5 \: }# `MDK-ARM软件安装0 w% T" H- Z* b3 k
好了,我们先回到MDK-ARM软件的安装。
% R; Q$ i2 N5 R' f
7 N4 `2 e! z  QKEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。
" R8 t. F7 \; x" ^2 u$ R( i
4 x9 U& c& [8 Q/ H* _uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。# t' z  C* A+ b( k1 @! X# w( g
( X  V: n. X5 |( H' c+ s* v
MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。" s& L! ^) w' W' r' \4 R7 Y

! T4 p+ Y) k2 k1、安装MDK-ARM软件,下载链接;0 V+ g$ w2 t7 Y# ]9 c9 ~

4 C0 y- Y" p5 ?; a2、未输入许可软件为Lite版本,代码大小限制32Kb;
/ W5 o; M7 ?9 ]4 \- S8 W# V
5 O, P) D' Q) s3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。! u5 j' m8 f( s3 p( Z) `

$ F' [$ I1 V+ g2 g7 f6 l  h! CST-LINK设置
! s- g, [% m5 Q  s" G+ \# K将st-link接入电脑usb,安装驱动。; {& j. @7 g" j# ~
在mdk软件中,点击魔术棒工具"Options for Target",( D1 k  X+ p$ L0 A5 N
在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting
5 z" {8 x* l+ N7 j+ }4 D* F2 f3 S$ y7 V' Z
20200418191302857.png 20200418191345700.png
$ n+ H4 R' B% ~9 F1 @' P9 l. {9 ]

1 f3 u! O0 A+ i! }/ n+ ?     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。
! y7 d8 l0 s- K) O" {5 M- _7 z# J5 }% u4 Q" {* f6 [
20200418191425598.png
. w# o, [3 r$ S% G
9 x* J: D6 L7 P" V9 W9 B( V' N* ]. H7 N
最后我们的开发环境已经搭建好了。
- @' @% s0 o+ @8 H% D* h: K! [
8 {2 a* F7 s4 x1 l) Y+ Q6 G& H- [* S9 z9 k# O7 C
收藏 评论0 发布时间:2021-12-9 11:15

举报

0个回答

所属标签

相似分享

官网相关资源

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