1- STM32 HAL库学习 GPIO配置点亮LED灯

STM32三种库:

库的类型:

ST已经推出了三种库函数,以方便客户快速开发STM32系列MCU。从15、16年开始,ST逐渐停止了对标准外设库的更新和维护,转向了HAL和LL库。
(1) 标准外设驱动库SPL                     Standard Peripheral Library
(2) Cube HAL                                     Hardware Abstraction Layer硬件抽象层库
(3) Cube LL以及直接操作寄存器       Low-layer底层库

几种库的区别:

①Cube LL库的效率优于HAL库的,几乎和直接写寄存器的效率相差无几。

②HAL库函数因为要顾及整个STM32系列间的代码高度兼容与可移植性,代码相对庞大。对于刚接触STM32的人来说,非常易于上手做些基本的评估和验证,入门快捷。

③LL库的出现,是对HAL库的有力补充。相比HAL库用户,LL库用户需要对MCU及相应外设有更为细致的了解

目前,STM32cubeMX不但支持基于HAL库的初始化文件的生成,也已支持基于LL库的初始化文件及工程的生成,对于已经比较熟悉STM32应用或关注代码效率的开发人员来说,可以优先考虑使用LL库。

 

STM32CubeMX:

STM32CubeMX是一个图形化的软件配置工具,使用图形向导可以生成STM32初始化代码工程。STM32CubeMX这个工具是ST目前重点打造的工具,目的就是为了方便开发者,节约时间,提高开发效率

官方地址:

STM32CubeMX特性:

1.直观的选择 STM32 微控制器(MCU)和微处理器(MPU)。

2.丰富易用的图形化界面: -自动解决配置冲突 -具有参数约束动态验证的外设和中间件功能模式 -时钟树与配置的动态验证 -功耗预测

3.生成初始化代码工程,包含:EWARM、 MDK-ARM、 TureSTUDIO、 SW4STM32等。

4.针对部分MPU生成Linux设备树。

5.可独立运行在Windows、Linux和macOS上使用,或作为 Eclipse 插件使用。

 

安装 JRE:

安装(安装一直下一步即可)

由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用, 建议到官网下载最新版本JRE。

地址:

 

 

下载STM32CubeMx和HAL库

官方地址:

HAL库下载:

 CubeMX下载并安装(安装一直下一步即可):

HAL库的安装:(LL库也在)

HAL库,也可理解为软件包,有在线安装、离线安装两种方式。

在线安装

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

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

离线安装:

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

1.导入离线包

 

2.直接解压 Help -> Updater Settings得到HAL库路径(直接解压HAL库离线包,注意路径、文件夹名需一致)

------------恢复内容开始------------

STM32三种库:

库的类型:

ST已经推出了三种库函数,以方便客户快速开发STM32系列MCU。从15、16年开始,ST逐渐停止了对标准外设库的更新和维护,转向了HAL和LL库。
(1) 标准外设驱动库SPL                     Standard Peripheral Library
(2) Cube HAL                                     Hardware Abstraction Layer硬件抽象层库
(3) Cube LL以及直接操作寄存器       Low-layer底层库

几种库的区别:

①Cube LL库的效率优于HAL库的,几乎和直接写寄存器的效率相差无几。

②HAL库函数因为要顾及整个STM32系列间的代码高度兼容与可移植性,代码相对庞大。对于刚接触STM32的人来说,非常易于上手做些基本的评估和验证,入门快捷。

③LL库的出现,是对HAL库的有力补充。相比HAL库用户,LL库用户需要对MCU及相应外设有更为细致的了解

目前,STM32cubeMX不但支持基于HAL库的初始化文件的生成,也已支持基于LL库的初始化文件及工程的生成,对于已经比较熟悉STM32应用或关注代码效率的开发人员来说,可以优先考虑使用LL库。

 

STM32CubeMX:

STM32CubeMX是一个图形化的软件配置工具,使用图形向导可以生成STM32初始化代码工程。STM32CubeMX这个工具是ST目前重点打造的工具,目的就是为了方便开发者,节约时间,提高开发效率

官方地址:

STM32CubeMX特性:

1.直观的选择 STM32 微控制器(MCU)和微处理器(MPU)。

2.丰富易用的图形化界面: -自动解决配置冲突 -具有参数约束动态验证的外设和中间件功能模式 -时钟树与配置的动态验证 -功耗预测

3.生成初始化代码工程,包含:EWARM、 MDK-ARM、 TureSTUDIO、 SW4STM32等。

4.针对部分MPU生成Linux设备树。

5.可独立运行在Windows、Linux和macOS上使用,或作为 Eclipse 插件使用。

 

安装 JRE:

安装(安装一直下一步即可)

由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用, 建议到官网下载最新版本JRE。

地址:

 

 

下载STM32CubeMx和HAL库

官方地址:

HAL库下载:

 CubeMX下载并安装(安装一直下一步即可):

HAL库的安装:(LL库也在)

HAL库,也可理解为软件包,有在线安装、离线安装两种方式。

在线安装

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

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

离线安装:

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

1.导入离线包

 

2.直接解压 Help -> Updater Settings得到HAL库路径(直接解压HAL库离线包,注意路径、文件夹名需一致)

 

 

创建工程:

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

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

 选择对应型号MCU

 

 时钟源选择

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

 

 选择GPIO(LED)引脚

 

配置时钟Clock

STM32CubeMX配置时钟的界面非常方便,有很多提示(比如最大时钟),很多地方直接点击选择就行了。

默认高速时钟是使用内部(HSI),而且CPU时钟配置的比较低。以我选择的STM32F103,外部8M晶振为例(如下图)。

 工程管理

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

 

生成代码

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

 添加代码

 当然,以上生成的代码还不够完善,需要添加自己的应用代码

 

生成的MDK-ARM工程,编译下载之后,默认是不会运行代码,需要重新复位一次才能运行,或你自己配置一下(如下图)。

 

 那么是不是每改变引脚或功能时,都要在CubeMX上面进行一次配置呢?

原文地址:https://www.cnblogs.com/darren-pty/p/13302199.html