前言
STM32CubeMX的项目管理器(Project Manager)包含以下三个主要部分:项目管理(Project)、代码生成器(Code Generator)和高级设置(Advanced Settings)。
这三个部分决定了项目的各种属性,相关的配置信息非常重要,也相对易于理解。对于初学者来说,掌握这些内容是很有必要的。
2Project工程管理
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代码生成
如上图,主要包含四项内容:固件包拷贝、生成文件、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高级设置
目前主要两个选项:驱动选择和调用函数设置。
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”,或扫描下方二维码进行关注,更多干货等着你 !