如何利用STM32CubeMX来自动生成STM32代码?

文/Edward

众所周知,ARM Cortex M系列是ARM专门为单片机设计的内核。其中,STM32系列的芯片可以算得上最成功的ARM Cortex M系列的芯片了。在最早期,ARM Cortex M系列的核心刚用在单片机设计的时候,同时期也有很多厂商推出ARM Cortex M核心的单片机,但为什么STM32会如此之普及?其中的缘由,离不开当时意法半导体推出的方便的固件库。

为什么区区一个STM32的固件库可以有这么大的作用?这是因为早在8位机和16位机的时代,单片机内部的每一个外设的寄存器数量是有限的,我们即使一个一个去配置也没有多少工作量。但是ARM Cortex M核心,操作外设时需要配置的寄存器有很多,这样使用起来就会很麻烦。而意法半导体的固件库则可以将这些操作变得简单。

   STD库和HAL库之分

最早意法半导体推出的适配STM32的固件库被称为“STD库”(标准库),我们用的最多的“STD库”要属适配在STM32F1上面的“STM32F10x_StdPeriph_Lib_V3.5.0”,这个3.5版本的固件库到现在为止还是开发STM32F1系列单片机的首选。

同时期的STM32系列还包括了F0,F1,F3,F4,L1等子系列芯片,并且都为它们适配了“STD库”。如图1所示。

图1 STD固件库的适配系列

大约到2014年左右,ST在标准库的基础上又推出了HAL库。实际上,HAL库和标准库本质上是一样的,都是提供底层硬件操作API,而且在使用上也是大同小异。有过标准库基础的同学对 HAL库的使用也很容易入手。个人认为ST官方之所以这几年大力推广HAL库,是因为HAL的结构更加容易整合STM32Cube,而STM32CubeMX是ST这几年极力推荐的程序生成开发工具。所以这两年新出的 STM32芯片,ST直接只提供HAL库。在新型的 STM32 芯片中,用HAL库逐步淘汰标准库。

目前STM32所有的芯片都适配了HAL库。如同2所示。

图2 HAL库的适配系列

很多人从STD库转来做HAL库可能一开始觉得不习惯,但是配置起来其实和STD库也差不多。比较有意思的是,其实HAL库的代码可以直接使用STM32CubeMX这个软件来生成,STM32CubeMX的操作方式非常简单,下面的内容就来介绍一些这个软件。

   STM32CubeMX安装

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

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

图3 STM32CubeMX简介

STM32CubeMX的特性如下:

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

(2)图形化配置单片机:

引脚状态显示

图形化配置时钟树

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

功耗预测

(3)STM32CubeMX可以自动生成主流IDE的工程代码,支持的IDE,如IAR、KEIL、GCC。

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

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

STM32CubeMX软件是运行于JRE上面的软件,因此我们在安装STM32CubeMX这个软件之前,现需要安装JRE。我们可以通过ST官网直接下载,JRE也可以从Oracle官网上面下载,当然也可以通过如下的链接,或者扫描图4中的二维码。

链接:https://pan.baidu.com/s/1fSGZ5J6u0fpBsaRDUZjAzg

提取码:qvrh

图4 STM32CubeMX和JRE下载网盘二维码

安装步骤为:

(1)  安装“jre-8u271-windows-x64”,直接默认安装即可,如图5所示。
图5 安装JRE

注意,如果JRE没有安装成功,则会弹出如图6所示的警告。
图6 未安装JRE弹出警告
(2) 解压“en.stm32cubemx_v6-1-0.zip”压缩文件,打开“en.stm32cubemx_v6-1-0”文件夹,然后双击运行“SetupSTM32CubeMX-6.1.0.exe”文件。接着直接勾选必要的选项,然后无脑点击下一步即可,如图7所示。
图7 stm32cubemx安装步骤
到此为止,stm32cubemx软件就安装完成了,我们可以在桌面上看到stm32cubemx软件的快捷方式。如图8所示。
图8 stm32cubemx快捷方式
   STM32CubeMX使用步骤
(1)双击打开“stm32cubemx”软件,我们就可以看到图9中显示的界面了。
图9 STM32CubeMX启动界面
(2)点击“File”->“New Project”用来创建一个新的工程,如图10所示。
图10 创建新工程

注意,如果出现了图10中间的数据下载提示,并且长时间没有下载完成时,可以点击“Cancel”去取消本次下载,不会产生影响。
(3)接下来我们就可以在这个界面上面选择芯片了,如图11所示,我们例子中选择了“STM32F429NG”,选择好芯片之后,点击“Start Project”。
图11 器件选择
(4)点击了“Start Project”之后,就会弹出如图12所示的界面,到此为止,我们就可以正式配置这个芯片的资源了。
图12 配置功能区域划分

这个软件整体配置流程比较傻瓜,操作起来很方便,这里就不详细阐述了。
(0)

相关推荐