
CubeMX设置+ p6 T1 D0 \3 b, l; r6 Y 1、在官网下载安装包安装,链接地址; ( 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, @ 如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。 固件包下载地址:链接地址。在"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 ![]() 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界面认识 ![]() ; r1 D2 Q m( B! p* @" i Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解). N+ }% m$ j- Z Clock Configuration:时钟树设置。(之后会慢慢讲解)+ j; Z" M! ?1 S 3 v" ?& k; E+ k6 ^# x O Project Manger:用于工程项目设置,输出代码设置。" N0 O' O, [ T5 f 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"里面的一些设置 + 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 ![]() Project Name:工程名称 Project Location:工程存放路径 Application Struture:应用程序结构5 W! J5 n: }5 r Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。 7 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。后面的笔记也是用这个环境(除非用说明)。 * 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 使用默认固件包 Code Generator(代码生成)* }) H% F& n8 W+ l/ ]# L9 l2 V/ Z 5 W% `6 X/ V3 ~5 M3 q ![]() Copy 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'文件 不勾:所有初始化代码都生成在main.c % _7 ?, w: A, i+ _& W. P 勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。 Backup previously generated files when re-generating 在重新生成时备份以前生成的文件 重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。" c1 L8 S! j( I Keep User Code when re-generating 在重新生成时保留用户代码/ y* e3 {# p, C0 N' v: p3 } 比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。 注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。 ; 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文件。 Set 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 Enable Full Assert 使能所有断言 Select a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能) Advanced Settings(高级设置)+ }" w e) a- t7 `5 V: V& l ![]() 8 T5 f8 D4 f2 m: x Q HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。 Not Generate Function Call不生成函数调用6 g+ z2 ?4 n5 g2 p1 D 也就是你代码不调用对应初始化函数。 % |( 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 提示: * G% F# k9 N0 u+ K4 O0 B: o A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic. 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 MDK-ARM软件安装 好了,我们先回到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 MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。 % _) v6 g9 n+ a5 X5 x' w: Y. h 1、安装MDK-ARM软件,下载链接; ) D$ r8 A5 c. C3 Y 2、未输入许可软件为Lite版本,代码大小限制32Kb; 9 f. h' c( K3 [5 r2 S9 t4 K" Y5 _: | 3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。 ST-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 ![]() ![]() $ p7 N7 t; I* P, c: j 4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。2 I! T0 I( q! l5 d; H ![]() 3 ^2 j* y3 p7 @ 最后我们的开发环境已经搭建好了。 7 J m/ C Q- F. P. D) ~9 J/ G " J3 ?0 J2 w* [2 y1 G7 n |