历史上的今天

今天是:2024年09月18日(星期三)

正在发生

2019年09月18日 | STM32CubeMX系列教程06_Project Manager工程管理器详细说明

发布者:calmrs 来源: eefocus关键字:STM32CubeMX  工程管理器  详细说明 手机看文章 扫描二维码
随时随地手机看文章

一、写在前面

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:DesktopTest.


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

关键字:STM32CubeMX  工程管理器  详细说明 引用地址:STM32CubeMX系列教程06_Project Manager工程管理器详细说明

上一篇:STM8S 115200bps 串口中断连续接收出错问题
下一篇:STM32CubeMX系列教程05_File、Window、Help菜单说明

推荐阅读

2019年超声波与光学屏下指纹识别技术占手机指纹识别市场的比重将从2018年3%上升至13%,整体屏下指纹识别市场规模将有数倍成长幅度。但真正较成熟的屏下指纹识别解决方案,恐怕要等到2019年才能推出。 集微网消息(文/Aki),在全面屏的影响下,智能手机所使用的屏下指纹识别技术正在如火如荼的发展。 拓墣产业研究院预计,2019年超声波与光学屏下指纹识别...
近几年,与物联网相关的政策和制度相继出台,指导物联网产业有序健康发展。泛在电力物联网建设,可以说是电力领域对物联网各类政策制度下的落地实践,既符合物联网各类顶层设计精神,又体现电力行业本身发展特点和规律。 物联网在国内兴起至今已经历十年时间,下一个十年中,物联网将进一步与国民经济千行百业深度融合,而泛在电力物联网的提出为物联...
SIM800L默认上电开机,若此时没有把rst和pwk引脚提前设置好,SIM800l会使stm32进入硬件中断(这可能是因为方面电源的原因导致的),同时sim800L开机后需要一定的时间稳定下来,建议采取方法:上电后立刻用软件方式控制PWK引脚使模块开机,这样到了后面执行连接服务器函数的时候该模块也已经基本稳定了。sim800L gpio脚的初始化需放在程序前面
  9月16日,湖北省能源局发布《关于2021年平价新能源项目审查结果的公示》,其中有38个符合条件的化学储能电站项目。   1.湖北吉昇新能源有限公司湖北省武汉市黄陂区临空产业园50MW/100MWh集中式(共享式)储能电站   2.襄阳市襄州黔中新能源有限公司湖北襄阳襄州区集中式(共享式)储能项目   3.中节能风力发电股份有限公司中节能湖北襄州50MW/1...

史海拾趣

问答坊 | AI 解惑

车用FPGA解决方案

分析家估计,汽车远程通信业务和硬件的总收益将于未来五年内超越200亿美元,而电子元件供应商正积极投资开发这个新兴而迅速扩张的市场。总体来说,汽车电子有望成为半导体行业的一个亮点,带领整个行业走出谷底。想想今天在路上行驶的汽车总数,就 ...…

查看全部问答∨

高价求购 Tornado V 2.2.1的序列号

高价求购 Tornado V 2.2.1的序列号 联系方式:站内消息.…

查看全部问答∨

比较下列可移动存储器的性能,并说说发展前景 急!!

软盘    可读写光盘    优盘(闪存)   可移动硬盘 从以下面比较 读写速度比较 容量          耐用性       价格等       市场&nbs ...…

查看全部问答∨

寻求一在mac下的网卡驱动

我是一个在X86架构上安装Mac OS X的人,现在主板的网卡不能在Mac下正常驱动.... 有没有高手能编写在Mac下的网卡驱动啊? 我的网卡是主板自带的Intel 82566DC-2的10/100/1000网卡.... 哪位高手写出来了就发到我邮箱吧 quwentong@sina.com…

查看全部问答∨

232通信COM1初始化

这段函数是232串口通信中的一部分,功能是对COM1的初始化,其中有些地方不懂,希望大家给点帮助,非常感谢。 outportb(0x3fb,0x80);   为什么把D7设置为1的是80(第二个参数)? outportb(0x3fb,0x03);    为什把第二个参数设 ...…

查看全部问答∨

关于开关电源的纹波和噪声

一来,供大家交流 二来,借花赚点钱分享大家的…

查看全部问答∨

是第一个不?STM8可DIY下载仿真器

STLink的协议很早就分析的非常透彻了,STM8_SWIM也很早就已经可以支持了。由于最近发布的仿真平台计划,就顺手把代码写了。总了来说,STLink的STM8部分,简单的像浮云一样。 不过,这些只是个人感觉,调试功能还米测试呢,自己目前还没有项 ...…

查看全部问答∨

TI 汇编VS线性汇编

这个问题一直困惑我:   Ti的汇编与线性汇编有什么区别?   能否各给出一个简单例子?…

查看全部问答∨

技术的安全性问题

请教各位大侠,怎样保护技术的安全性,不让别人仿制?????…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved