CubeMX安装和使用指南

STM32CubeMX是一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。

 从上图可以看得出,它包含了STM32所有系列的芯片,包含示例和样本(Examples and demos)、中间组件(Middleware Components)、硬件抽象层(Hardwaree abstraction layer)。

STM32CubeMX的特性如下:

1.直观的选择 STM32 微控制器。

2.微控制器图形化配置:

l 自动处理引脚冲突

l 动态设置确定的时钟树

l 可以动态确定参数设置的外围和中间件模式和初始化

l 功耗预测

3.C代码工程生成器覆盖了STM32 微控制器初始化编译软件,如IAR、KEIL、GCC。

4.可独立使用或作为 Eclipse 插件使用。

STM32CubeMX是ST意法半导体的主动原创工具,它可以减轻开发的时间和费用。STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。这个平台包括 STM32Cube HAL(一个 STM32 的抽象层集成软件,确保STM32 系列最大的移植性)。再加上兼容的一套中间件(RTOS、USB、TCP/IP 和图形),所有内嵌软件组件附带了全套例程。

更多关于STM32CubeMX介绍可以进入ST官网查看。

获取并安装

可以直接去意法半导体公司官网下载:

STM32CubeMX - STM32Cube初始化代码生成器 - STMicroelectronics

下载完成后,一路Next即可。

该软件本身是用Java语言编写的,所以需要JRE环境支持,早起版本要自己下载安装,现在一般都是软件自带了。

基本使用

设置CubeMx资源路径,用于存放下载和更新的固件库

Help -> Updater Settings

资源路径


注意:资源路径中不能有中文出现

安装HAL库 

在线安装

打开安装好的 STM32CubeMX 软件 点上面的Help -> Manage embedded software packages

选择需要安装的芯片型号和版本

安装完成后如下图:

下载完成后,在刚才创建的固件库中会看到如下内容:

这就是HAL库。

此部分内容在HAL专题篇中讲解,不赘述。

离线安装

HAL库下载

直接导入安装包 Help -> Manage embedded software packages ->From Local 选择离线包即可

使用CubeMx生成HAL工程

新建工程

选择芯片型号

设置调试器,默认是关闭的,如果不使用调试器关闭即可

如果不使用调试器,即不开启调试端口。

那么可以通过串口下载程序。但是不支持调试了。

另外还可以选择是否启用唤醒功能System Wake-Up(端口PA0),具体见数据手册关于唤醒的部分。如果不用唤醒,则其端口可用作普通IO口。

唤醒功能主要和低功耗模式有关。

时基源:SysTick通常是给操作系统用的,因为操作系统需要通过时钟来进行调度等功能。如果是裸机,则可以选择该时基源,否则,选用其它的定时器。

设置外部时钟

默认是使用的内部时钟
打开外部时钟

注意:如果disable外部时钟,则默认使用的是内部时钟HSI和LSI

另外还有两个选项

BYPASS Clock Source (旁路时钟源) 指的就是有源晶振,无需使用芯片内部的时钟驱动组件,直接从外界导入时钟信号。

Crystal/Ceramic Resonator 是选择外部晶振;

如果你的开发板上STM32采用外部晶振,那么就不能选择BYPASS Clock Source (旁路时钟源)模式,否则STM32将会工作不正常。

还有个勾选,Master Clock Output是时钟输出,具体可参考时钟树,有个时钟输出功能。

设置时钟频率

将时钟评率设置为72MHz,有不明白的可以看STM32时钟系统的配置寄存器和源码分析

注意,时钟越快功耗越大,应根据实际需要选择,并不是越大越好。

设置LED引脚

设置引脚模式

设置工程

Code Generator可根据实际需要去勾选

生成工程

注意工程路径中不要有中文,要不然工程创建会有错误:

开始编程

打开工程

打开的功能目录如下:

此部分内容在HAL专题篇中讲解,不赘述。

注意:编写代码时需要编写在一对注释之间,这样再次生成代码时不会被覆盖。

比如:在mian.c文件的while循环中加入以下代码

HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_12);
HAL_Delay(1000);

如下图所示:

编译下载测试

功耗评估

STM32CubeMX提供了一个功耗评估工具选项,可根据当前用户选择的微控制器、电池类型等参数对平均电流、电池预期寿命、平均DMIP、工作的最高环境温度进行评估,且可根据所得的评估结果进一步调整时钟频率、低功耗模式以及外设来进一步降低系统功耗。此外,针对不同的功耗序列转换,STM32CubeMX还提供了转换检测器,使能后可检测配置的功耗序列中无效的转换,并在用户添加新的功耗序列时进行提示。

功耗评估工具及使能模式切换检测器

创建功耗序列

在创建新的序列前需设置好VDD值,还可以选择相应的电池模型,用于后续评估电池的预期使用寿命。

添加新的电池模型

点击“New Step”创建并编辑新的序列。序列编辑窗口中选择"Enable IPs from Pinout"可从"Pinout & Configuration"选项配置中导入当前工程配置的外设,并根据需要选择功耗模式、CPU频率、时钟配置等参数。此外,在选项设置(Optional Settings)中可对当前序列的持续时间、额外的电流消耗(如外围电路中的设备消耗)进行设置。当前序列消耗的电流在"Results"项中进行显示。

功耗序列的创建和编辑

功耗序列视图

功耗序列视图可根据所添加的功耗序列按序列步骤、运行和低功耗模式、外设(数字/模拟)消耗等进行显示。并给出了平均电流、电池预期寿命、平均DMIP、工作的最高环境温度的评估结果。

功耗序列视图

补充

 用MX生成初始代码后,用户代码要写在类似的这两行开始和结束注释之间:

否则,修改MX再生成的时候,注释之外的用户代码都会被冲掉。

用MX配置引脚时,标签名不要随便取,这个名字,会在自动生成的相关代码中被使用。

相对应的代码中:

MX配置后,初始的main中,做了哪些事情?

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值