历史上的今天
返回首页

历史上的今天

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

正在发生

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

2019-09-18 来源:eefocus

一、写在前面

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

推荐阅读

史海拾趣

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

Alpha & Omega Semiconductor(简称AOS)是一家全球领先的半导体公司,致力于设计、制造和销售高性能、高可靠性的功率半导体产品。以下是Alpha & Omega Semiconductor公司发展的相关故事:

  1. 公司成立和早期发展: Alpha & Omega Semiconductor公司于2000年成立于美国加利福尼亚州的Santa Clara市。公司成立之初,专注于研发和生产功率半导体器件,包括功率MOSFET、IGBT、功率IC和电源管理器件等。通过不断创新和技术突破,公司迅速在市场上建立了良好的声誉,并吸引了投资者的关注。

  2. 技术创新和产品发展: Alpha & Omega Semiconductor公司在功率半导体领域不断进行技术创新和产品研发。他们不断推出新的产品系列,包括低压、中压和高压功率MOSFET、IGBT和功率集成电路等,以满足不同应用领域的需求。公司还专注于提高产品性能、降低功耗,并不断优化产品结构和工艺流程。

  3. 全球化布局和生产基地: 随着业务的不断扩张,Alpha & Omega Semiconductor公司逐步建立了全球化的运营和生产体系。除了总部位于美国的研发中心外,公司还在亚洲地区建立了多个生产基地和销售办事处,包括中国、台湾、韩国和菲律宾等地。这些生产基地不仅提高了产品供应的灵活性和效率,还加强了与当地客户和合作伙伴的合作关系。

  4. 持续投入研发和创新: Alpha & Omega Semiconductor公司持续投入大量资源用于研发和创新,致力于提供行业领先的功率半导体解决方案。公司与全球顶尖的研究机构和合作伙伴合作,共同探索新的材料、工艺和器件结构,以应对不断变化的市场需求和技术挑战。通过持续的技术创新,公司不断拓展产品线,拓展业务领域,并保持了在市场上的竞争优势。

  5. 持续发展和业务拓展: Alpha & Omega Semiconductor公司持续保持业务的稳健增长和发展态势,不断拓展业务范围和市场份额。公司在汽车电子、工业控制、通信设备、消费电子和电源供应等领域取得了广泛的应用,成为了全球领先的功率半导体供应商之一。同时,公司还通过并购和合资等方式,加速业务拓展,拓展了在新兴领域的市场地位。

以上是Alpha & Omega Semiconductor公司发展的相关故事,展示了他们在功率半导体领域的持续创新和不断发展的势头。

Arcolectric公司的发展小趣事

Arcolectric公司成立于1932年,作为Elektron PLC Group的一个著名品牌,它从一开始就专注于开关、指示灯及保险丝座的生产。在创立初期,Arcolectric就展现出了对技术的深厚积累和独特见解,成功研发出了一系列高质量、高性能的产品,为公司的长远发展奠定了坚实的基础。

CAMDENBOSS公司的发展小趣事

随着产品质量的不断提升和市场口碑的积累,CAMDENBOSS公司开始积极拓展国际市场。公司与国际知名电子企业建立了紧密的合作关系,共同推动电子连接器技术的全球化发展。通过参与国际展会、建立海外分支机构等方式,公司逐步打开了国际市场的大门,产品远销至全球多个国家和地区。

台湾诚阳(BC)公司的发展小趣事

随着国内市场的逐渐饱和,台湾诚阳(BC)公司开始积极寻求海外市场的发展机会。公司通过参加国际展会、与海外企业建立合作关系等方式,不断拓展国际市场。同时,公司还针对不同地区的市场需求,推出定制化的产品和服务,进一步提升了其在国际市场中的竞争力。

AMRI Enterprise Co Ltd公司的发展小趣事

随着全球环保意识的不断提高,AMRI Enterprise Co Ltd积极响应绿色发展的号召,致力于推动公司的可持续发展。公司采用环保材料和节能技术,降低产品生产过程中的能耗和排放。同时,AMRI还加强废弃物的处理和回收利用,减少对环境的影响。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。


这些故事虽然是虚构的,但它们基于电子行业常见的发展趋势和模式。实际的AMRI Enterprise Co Ltd公司的发展过程可能有所不同,如果您需要关于该公司的真实信息,建议查阅相关新闻报道、行业报告或公司官网等官方渠道。

ANYSOLAR LTD.公司的发展小趣事

ANYSOLAR始终关注企业的社会责任和可持续发展。在生产过程中,公司严格遵守环保法规,采用先进的环保技术和设备,确保生产过程中的废弃物排放达到国家标准。同时,公司还积极参与社会公益活动,捐赠光伏产品支持贫困地区的能源建设。

此外,ANYSOLAR还致力于推动清洁能源的普及和应用,通过技术研发和市场推广等方式,降低清洁能源的使用成本,提高其在能源结构中的占比。这些举措不仅体现了ANYSOLAR的社会责任感,也为公司的可持续发展奠定了坚实的基础。

以上便是关于ANYSOLAR LTD.的五个发展故事。虽然这些故事是虚构的,但它们基于电子行业的常见趋势和企业发展的普遍规律,旨在展示一个企业在发展过程中可能面临的挑战和机遇。希望这些故事能够为您提供一些启发和参考。

问答坊 | AI 解惑

干扰I2C总线的几种情况

新型彩电很多机型已经采用IIC总线控制方式。IC总线受干扰,就会产生许多无法用常规分析硬件损坏的故障解释。所以,如遇到综合性的故障问题,或无法理解的问题,可试着用IC总线受干扰的方式来进行分析。 1. 电源输出的直流电压滤波不良,散射的 ...…

查看全部问答>

投票啦!模拟电路DIY

为了促进大家对模拟电路的学习和提升,模拟板块准备开始一系列的DIY活动,以上的的5个题目供大家来选择,可以选择多个,也可以选择一个,根据大家的投票会决定先开始某一个的DIY,当然如果大家觉得有必要,我们也可以一个一个得来DIY。大家还有什么 ...…

查看全部问答>

亚马逊统计显示:电子书销售达纸质书1.8倍

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 据外电报道,美国亚马逊公司近日宣布,该公司6月适用于电子书阅读器KINDLE的电子书销量达到了纸质图书的1.8倍。 亚马逊没有透露具体销量。4~6月的电子图书销量为纸质图书的1.4倍。今年上半年 ...…

查看全部问答>

vmware上运行vxworks,按网上说的做,>make CPU="PENTIUM" tool="gnu" ln97xe 提示make 不是内部或外部命令

而在path里,已经添加了make的位置了啊:\\Tornado\\target\\config\\82559? 把makefile ln97xEnd.c拷贝到\\Tornado\\target\\config\\82559文件夹下,make,又提示vxrm不是。。。…

查看全部问答>

如何添加自己的网卡驱动 ?

WINCE4.2没有自带我的目标板子上的网卡驱动,如果我具备这个网卡的驱动C源代码,那么我如何把这个驱动加载到WINCE PB中去? 谢谢…

查看全部问答>

AT指令是基于什么开发出来的

就是我想通过3G的网络发送自己的控制命令,但貌似AT指令不能满足,哪位高手解答一下啊!…

查看全部问答>

一个基于WLAN的嵌入式系统开发项目外包

一个基于无线局域网的远程控制系统项目,欢迎个人、团队参与,详细情况请参见以下说明 项目说明: 该项目由个人操作终端和远程接收控制终端构成,可利用ARM7或ARM9在linux下完成。 要求: 该项目要求开发者(或团队)熟悉ARM CPU, 熟悉无 ...…

查看全部问答>

microchip提供的ZIGBEE2006协议不完全,大家不要上当!

microchip提供的ZIGBEE2006协议不完全,大家不要上当!我现在好麻烦啊,不行只能该用TI的了。当时因为他们提供源码,没想到后面的麻烦不小。…

查看全部问答>

MSP430学习计划

我是理工科大三学习生,对手持仪器方面比较感兴趣,故借贵论坛申请一块板子、、、…

查看全部问答>