一、写在前面
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了。
上一篇:STM8S 115200bps 串口中断连续接收出错问题
下一篇:STM32CubeMX系列教程05_File、Window、Help菜单说明
推荐阅读
史海拾趣
AR RF/Microwave Instrumentation的创立源于对射频和微波技术的深入研究和理解。公司创始人在行业内具有丰富的经验,他们看到了这一领域的巨大潜力,并决定成立一家公司来专门研发和生产相关的仪器设备。起初,公司规模较小,但凭借高质量的产品和专业的服务,逐渐在行业内赢得了声誉。
Doodle Labs非常重视企业文化的建设和发展。公司倡导开放、创新、协作、共赢的价值观,为员工提供良好的工作环境和发展机会。同时,Doodle Labs还积极参与公益事业和社会活动,为社会做出贡献。在未来,Doodle Labs将继续秉承这些价值观和精神,致力于成为全球领先的无线通信技术提供商和物联网解决方案提供商。
为了满足全球客户的需求,EECO Switch公司积极实施全球化战略。公司在墨西哥、台湾和中国等地设立了制造工厂,并在英国剑桥设立了销售办事处。这些海外机构不仅为公司提供了更广阔的市场空间,还帮助公司更好地了解当地市场的需求和趋势。展望未来,EECO Switch将继续秉承创新、质量、服务的核心价值观,致力于成为全球领先的人机界面产品提供商。
作为薄膜开关的先驱和专家,EECO Switch公司在该领域拥有超过30年的丰富经验。公司凭借其精湛的制造工艺和严格的品质控制,成功打造出了众多优质的薄膜开关产品。这些产品广泛应用于医疗设备、航空电子设备、军用产品和工业控制等领域,赢得了众多客户的信任和好评。
为了进一步拓展业务范围,CSR plc在2010年8月收购了专业音频压缩技术供应商APT。这次收购让CSR plc得以将APT-X的低延迟音频压缩编解码器与公司的下一代音频产品实现更紧密的集成,从而支持公司向前景更广阔的音频市场进军。这一举措不仅让CSR plc在音频领域取得了更大的市场份额,也为其未来的发展开辟了新的道路。
随着技术的不断进步和市场需求的日益多样化,CSR plc意识到单一的业务领域已无法满足公司的长远发展。于是,公司开始寻求多元化的发展道路。2007年,CSR plc成功收购了Nordnav Technologies和Cambridge Positioning Systems,开始进军GPS市场。这一战略转型不仅让公司的业务范围得到了极大的拓展,也使其在GPS领域取得了显著的成就。
分析家估计,汽车远程通信业务和硬件的总收益将于未来五年内超越200亿美元,而电子元件供应商正积极投资开发这个新兴而迅速扩张的市场。总体来说,汽车电子有望成为半导体行业的一个亮点,带领整个行业走出谷底。想想今天在路上行驶的汽车总数,就 ...… 查看全部问答∨ |
|
我是一个在X86架构上安装Mac OS X的人,现在主板的网卡不能在Mac下正常驱动.... 有没有高手能编写在Mac下的网卡驱动啊? 我的网卡是主板自带的Intel 82566DC-2的10/100/1000网卡.... 哪位高手写出来了就发到我邮箱吧 quwentong@sina.com… 查看全部问答∨ |
|
这段函数是232串口通信中的一部分,功能是对COM1的初始化,其中有些地方不懂,希望大家给点帮助,非常感谢。 outportb(0x3fb,0x80); 为什么把D7设置为1的是80(第二个参数)? outportb(0x3fb,0x03); 为什把第二个参数设 ...… 查看全部问答∨ |
|
STLink的协议很早就分析的非常透彻了,STM8_SWIM也很早就已经可以支持了。由于最近发布的仿真平台计划,就顺手把代码写了。总了来说,STLink的STM8部分,简单的像浮云一样。 不过,这些只是个人感觉,调试功能还米测试呢,自己目前还没有项 ...… 查看全部问答∨ |
|