【ARM Cortex-M 开发实战指南(入门篇)】第5章 STM32CubeMX软件安装与使用

前面的章节笔者已经介绍了Cortex-M的开发环境搭建与使用,由于STM32的使用比较广,因此本文针对STM32介绍下STM32CubeMX的安装与使用。

STM32CubeMX是STM32初始化代码生成器,开发者可以直接使用该软件进行可视化配置,大大节省开发时间,因此,在实际项目开发过程中,STM32CubeMX还是很方便的,推荐大家使用。

5.1 JDK安装

安装STM32CubeMX之前,电脑中要有java运行时环境(JRE),否则会报错:

LPLscq.png

因为STM32Cube是Java写的,不然怎么能跨平台,这也是为什么在安装前需要检查Java环境。如果你安装过JDK,那么跳过此步骤即可。

STM32CubeMX要求JRE最低版本是1.7.0_45,如果你电脑已安装JRE版本大于1.7.0_45,则可以不用再下载安装。

下载地址

LPLWEF.md.png

第一步:下载后双击JavaSetup8u261.exe即可安装JRE。

接受许可,根据自己电脑系统选择下载(我以Windows版本为例),如下图:

LPLog1.md.png

第二步:按照提示完成安装

LPLqHO.md.png

LPLxCd.md.png

第三步:查看是否安装成功
打开命令提示符,输入java会有如下显示,则安装成功。

LPOSgI.png

注意:打开命令提示符方法
win+R 输入cmd 即可。

还可以查看Jre版本:

Java -version

LPOAUg.md.png

5.2 STM32CubeMX安装

5.2.1 STM32CubeMX下载

首先去ST官网下载STM32CubeMX。

下载地址

下载后,解压压缩包,会有如下四个文件。

LPOKK0.png

SetupSTM32CubeMX-6.0.1.app文件夹是MAC系统的安装包,SetupSTM32CubeMX-6.0.1.linux是Linux系统的安装脚本,安装时需要将整个压缩文件放在Linux系统中的某个目录下按安装,Linux系统安装时其实调用的SetupSTM32CubeMX-6.0.1.exe文件,因此需要将SetupSTM32CubeMX-6.0.1.exe和一同放在Linux系统才能进行安装,SetupSTM32CubeMX-6.0.1.exe是Windows的安装包,笔者使用的Windows 10系统,在Windows安装只需要SetupSTM32CubeMX-6.0.1.exe文件即可。不管任何系统,除了初始化安装方式不一样,安装过程都是一样的。好了,我们开始安装吧。

5.2.2 STM32CubeMX安装

双击SetupSTM32CubeMX-6.0.1.exe,开始安装。

LPO3aF.png

同意许可声明,然后点击“next”。

LPOdr6.png

同意ST privacy and Teams of use,点击“next”。

LPOyPH.png

选择安装路径。

LPO6Gd.png

LPOcRA.md.png

LPOgxI.png

接下来就是开始安装。

LPO4Z8.png

等待安装完成。

LPOTiQ.png

LPObzn.png

5.3 HAL库安装

5.3.1 HAL库在线安装

打开安装好的 STM32CubeMX 软件, 进入库管理界面(Help -> Manage embedded…),会有一个列表, 勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图:

LPOvZT.md.png

LPOxdU.md.png

这种方式比较简单,需要联网在线下载,可能需要等待一段时间。如果刷新之后,可以看到最新版本,以及一些老版本HAL库。

LPX9JJ.md.png

等待安装完成即可。

5.3.2 HAL库离线安装

离线安装的前提是需要下载好离线包,方法有两种:1.从库管理界面直接导入离线包。2.直接解压离线包到指定路径下。

1.导入离线包

LPXeoD.md.png

2.直接解压

先在Help -> Updater Settings设置HAL库路径

LPXQSA.png

直接解压HAL库离线包,放在前面设置的库路径下。

5.4新建工程

接下来从选择自己型号MCU,到生成代码并成功运行的创建过程。

1.打开STM32CubeMX,进入MCU选择器

LPXGef.md.png

进入选择器时会联网更新数据库,可能需要等待一下。

2.选择对应型号MCU

LPXByq.md.png

【注】第一次使用某单片机,在点击生成代码以后,如果没有相应的固件,STM32CubeMX软件会提示需要下载固件,点击确定即可在线下载。保持联网,在线安装很快,当然也可先安装HAL库,参见上一节内容。

3.时钟源选择
如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC(如下图)。如果使用默认内部时钟(HSI),这一步可以略过。

LPX6TU.md.png

4.选择GPIO(LED)引脚
我这里使用一个GPIO引脚(PB0)控制LED亮灭。

LPXhlR.png

以点亮LED为例。在我的电路中,LED1连接的引脚是PB0,我把引脚PB0设置为输出。

LPX7TO.md.png

5.配置时钟Clock

STM32CubeMX配置时钟的界面非常方便,有很多提示(比如最大时钟),很多地方直接点击选择就行了。默认高速时钟是使用内部(HSI),而且CPU时钟配置的比较低。以我选择的STM32F103,外部8M晶振为例(如下图)。

LPXqte.md.png

6.工程管理

工程管理器的内容比较多,大部分都默认即可,这里讲述几个要点(如下图)

LPXv6I.md.png

值得注意的是,如果想使用GCC或者其他编译工具,直接在‘Toolchain/IDE’选择即可,然后就可进行应用开发,不需要考虑工程搭建,非常方便。

7.生成代码
以上操作就基本配置完成了一个简单的示例工程,只需要点击“生成代码”即可。

LPj978.md.png

LFPUP0.md.png

LFPIqH.md.png

8.添加代码

当然,以上生成的代码还不够完善,需要添加自己的应用代码。添加在主函数添加一下应用代码:

HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
HAL_Delay(500);

加如上所示的代码,你开发板上LED就会间隔500ms变化一次(呈现闪烁状态)。

【注】
1.延时500ms时间需要你时钟配置正确。
2.LED对应引脚需要与你开发实际一致(本文以PB0为例)。
3.生成的MDK-ARM工程,编译后在线下载或者通过ISP下载到板子上,然后复位即可看到实验现象。

关于程序的下载与调试后文会详细讲解。


欢迎访问我的网站

BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎


资源获取方式

1.关注公众号[嵌入式实验楼]
2.在公众号回复关键词[Cortex-M]获取资料提取码

Related posts

Leave a Comment