
CubeMX设置 1、在官网下载安装包安装; k+ U1 Y- }$ l0 I7 b6 w. T 2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成; 如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。 ( g1 I6 L& l6 r- O. W/ Z 固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。3 G6 Y0 x3 h9 [- h5 l0 p" [6 M 或者在主界面点击(INSTALL/REMOVE)安装本地固件包。 ![]() , V6 ?- l3 F9 L+ ~4 s 3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。: a9 T l" x2 @* }# J CubeMX界面认识 - Z/ W5 m. a9 O4 @ ![]() 1 M7 ]' i0 H7 R; D; h# N: Z: ]& l" F Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解) + r. X3 G) S$ f7 l: B Clock Configuration:时钟树设置。(之后会慢慢讲解)4 u, d! s. S4 R* T; J+ M+ a Project Manger:用于工程项目设置,输出代码设置。/ x% X8 ]1 z0 v9 ?" O Tools:用于电源管理。 上面“GENERATE CODE”用于生产代码工程。* W% h. L+ V" [ $ J0 C) ?" `# m e: x 我们来讲一下"Project Manger"里面的一些设置 . p/ s, q4 f5 E1 I CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。 - v. u o2 G& a4 o Project(工程管理) a3 b6 n* H% K3 L* x6 |. X ; \- [) }5 Y, `+ S& C' ?* `! r/ N ![]() Project Name:工程名称, W2 o2 R: m* K0 z$ h- D Project Location:工程存放路径 Application Struture:应用程序结构) @3 I) E7 e7 C( Z' X5 I( Q Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。' {6 N% k' h3 n$ ]4 H% j3 c , _. R2 P2 m Y4 J6 B7 w. h! i' N Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。 " v: R* b( \$ }" H) n8 g V Toolchain Folder Location:工具链文件夹路径4 F8 m( A$ e# i Toolchain/IDE:工具链/开发环境选择( g9 h& U( B) l) H 安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。' D! }5 M' e3 \" j9 h: _ 3 N8 L! h8 H% Q$ B O- g 堆栈设置:Heap堆为0x200,Stack栈为0x400 MCU参考型号 固件包名称与版本& Q, n$ g- ~+ T: C+ `( w. I 如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。 使用默认固件包 5 A( Z2 ~9 S# y. x9 J& m3 K' X ^8 _ Code Generator(代码生成) ![]() Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。+ Q# Y( g, d+ [$ q Copy only the necessary library files 只复制必要的库文件。- K' l* ~0 V1 @6 y( E! B 这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。 " r1 m0 O# s m6 @" n7 W, x) I Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考 Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件 不勾:所有初始化代码都生成在main.c ?3 r2 l$ B: c6 e3 Y% k 勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。 Backup previously generated files when re-generating 在重新生成时备份以前生成的文件 重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。 Keep User Code when re-generating 在重新生成时保留用户代码 比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。 注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。 Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 - A2 L+ g) R+ M. H/ V; h9 b 比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。 Set all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗) 这个做低功耗产品时这个选项有必要勾选。 x/ Z$ a+ Q- m8 L 8 ^3 O6 n- b; S: y" [ Enable Full Assert 使能所有断言% Z6 w2 j$ F+ I* q# k Select a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)/ f: e* S4 b7 Y2 h " |9 I- |/ B, O6 j Q Advanced Settings(高级设置) 2 G: ?3 f1 D: h3 e! U; @" k ![]() HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。 Not Generate Function Call不生成函数调用 也就是你代码不调用对应初始化函数。1 q1 p* N# U: A 8 p' c: }: _( F r 比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。! A% b1 `- G% Q( o, Q# H. ~; P " `' A7 [% _! Z W0 I4 w Viility (Static)可见性(静态)# Q) e8 A& B# A 这个就是初始化代码声明为static。0 i, z8 }- C" M% K' A8 w 提示:* @/ S* i+ L6 N1 m : K/ E6 h8 j% T: d A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.7 E, ]5 f/ y3 ^: e7 a/ J) E 2 Y2 _' x; Z4 p) V B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。 # `/ f) |. V# H0 Y/ s/ A P MDK-ARM软件安装 好了,我们先回到MDK-ARM软件的安装。& n7 l# H* e. M% I0 z3 A+ ~ , o, L8 v) G3 J KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。- x% j9 ]0 V& S9 A- |& S# C3 p1 ? uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision5。( ?0 Y: S% \) @1 m MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。4 p$ }" i3 t& o( w ( h4 W, W4 Q% l! t7 x, V 1、安装MDK-ARM软件,下载链接; 3 M8 G$ Z/ R4 i6 {* S4 `1 K0 G 2、未输入许可软件为Lite版本,代码大小限制32Kb;+ a6 S J) T* C: f' ]0 T: C* w 3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。6 @5 D) A: F1 `+ n9 B3 f$ s+ j/ h+ P" K ST-LINK设置 将st-link接入电脑usb,安装驱动。 在mdk软件中,点击魔术棒工具"Options for Target", 在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting& i$ C+ T9 X E1 ~, ~7 E O . ]2 D/ J+ {. V) u( `' A5 T ![]() ![]() 4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。( ], \& [: K! {, a9 g ![]() 3 U) a' ]. I1 Y 最后我们的开发环境已经搭建好了。 |