良许Linux教程网 干货合集 STM32CubeMX系列教程06_Project Manager工程管理器详细说明

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

前言

STM32CubeMX的项目管理器(Project Manager)包含以下三个主要部分:项目管理(Project)、代码生成器(Code Generator)和高级设置(Advanced Settings)

这三个部分决定了项目的各种属性,相关的配置信息非常重要,也相对易于理解。对于初学者来说,掌握这些内容是很有必要的。

2Project工程管理

image-20230815211849800
image-20230815211849800

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:使用默认固件包

这里勾选上就会根据系统进行默认匹配固件包,一般建议默认。

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

3Code Generator代码生成

image-20230815211856269
image-20230815211856269

如上图,主要包含四项内容:固件包拷贝、生成文件、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内容。

4Advanced Settings高级设置

image-20230815211900553
image-20230815211900553

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

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了。

5说明

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

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

3.本文收录于公众号『嵌入式专栏』,关注微信公众号回复【STM32CubeMX系列教程】即可查看全系列教程。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部