STM32CubeMX系列教程06_Project Manager工程管理器详细说明

说明:

本文原创作者『strongerHuang

首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop

标签:STM32、 STM32CubeMX、 LL库、 HAL库

 

一、写在前面

STM32CubeMX的Project Manager工程管理器包含:Project工程管理、 Code Generator代码生成、 Advanced Settings高级设置三部分内容。

这三部分内容决定了工程的一些属性,相关的配置信息比较重要,也容易理解。初学者有必要掌握其中内容。

 

二、Project工程管理

 

Project工程管理包含三部分内容:Projcet Settings工程设置、 Linker Settings堆栈设置、 Mcu and Firmware Package MCU和固件包信息

2.1 Projcet Settings工程设置

A.Project Name:工程名称

比如:Demo.uvprojx,以及对应工程里面目标名称。

 

B.Project Location:工程存放路径

这个容易理解。如:D:\Desktop\Test.

 

C.Application Struture:应用程序结构

这里包含两个选项:Basic和Advanced。

Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。

Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。

当然,这两种生成的结构都比较基础,一般实际项目都会重新整理一遍软件架构。

 

D.Toolchain Folder Location:工具链文件夹路径

这个是根据上面Project Name和Project Location得出来的,用户不能修改。

 

E.Toolchain/IDE:工具链选择

包含选项:

·EWARM V7 和 V8

·MDK-ARM V4 和 V5

·TrueSTUDIO

·SW4STM32

·Makefile

·其它

 

2.2 Linker Settings堆栈设置

这里的选项相信大家一看就明白,主要就是堆和栈大小的设置。

默认缺省值:Heap堆为0x200,Stack栈为0x400.

 

2.3 Mcu and Firmware Package MCU和固件包信息

这里有三个选项,关于MCU类型和固件包版本信息,一般默认配置。

A.Mcu Reference:MCU参考型号

这个是根据你选择的MCU型号决定的,用户不能修改。

B.Firmware Package Name and Version:固件包名称和版本信息

这个容易理解,如:STM32Cube_FW_F1_V1.7.0

C.Use Default Firmware Location:使用默认固件包 这里勾选上就会根据系统进行默认匹配固件包,一般建议默认。

当然,不勾选,可以自己选择指定固件包。

 

三、Code Generator代码生成

 

如上图,主要包含四项内容:固件包拷贝、生成文件、HAL设置、模板设置

3.1 STM32Cube Firmware Library Package固件包拷贝

1.Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。

不管你用,还是没有用到,都拷贝到你工程目录下。这样一来,你工程下文件就比较多。

 

2.Copy only the necessary library files 只复制必要的库文件。

这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。

 

3.Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考。

这里没有复制HAL库文件,只添加了必要文件(如main.c)。相比上面,没有Drivers相关文件。

 

3.2 Generated files生成文件

这里可以多选,每项可选择:是or不是。

1.Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件

不勾:所有初始化代码都生成在main.c

勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。

 

2.Backup previously generated files when re-generating 在重新生成时备份以前生成的文件

重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。

 

3.Keep User Code when re-generating 在重新生成时保留用户代码

比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。

注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。

 

4.Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。

 

3.3 HAL SettingsHAL库设置

1.Set all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)

这个做低功耗产品时这个选项有必要勾选。

2.Enable Full Assert 使能所有断言

也就是参数检查。

 

3.4 Template Settings模板设置

1.Select a template to generate customized code 选择一个模板来生成自定义代码

代码自定义生成模板可以参看最新(V28版)用户手册6.3节 Custom code generation内容。

 

四、Advanced Settings高级设置

 

目前主要两个选项:驱动选择和调用函数设置。

4.1 驱动选择

目前主要就是针对工程中使用到的外设,选择HAL还是LL驱动(参看上图)。 提示:目前有些型号MCU的部分外设没有LL驱动。

 

4.2 调用函数

主要关心后面两个选项:Not Generate Function Call和Visibility (Static)

1.Not Generate Function Call不生成函数调用

也就是你代码不调用对应初始化函数。

比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。

 

2.Visibility (Static)可见性(静态)

这个就是初始化代码声明为static。

提示:

A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.

B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。

 

五、说明

1.该文档仅供个人学习使用,版权所有,禁止商用。

2.本文由我一个人编辑并整理,难免存在一些错误。

3.为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该教程同步更新于微信公众号『嵌入式专栏』,关注微信公众号回复【STM32CubeMX系列教程】即可查看全系列教程。

 

六、最后

我的知乎: strongerHuang
我的博客: www.strongerhuang.com

关注微信公众号『strongerHuang』,在底部菜单中查看更多精彩内容!

  • 40
    点赞
  • 136
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strongerHuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值