HAL库的简单介绍以及环境搭建

目录

引言

一、HAL库的基本介绍

二、HAL库开发环境搭建

1、安装JAVA运行环境

2、安装STM32CubeMX

3、在线下载芯片支持包


引言

前面,我们学习了STM32基于寄存器的开发方式,能够更接近底层,但是随着我们学习的越来越深、代码越来与复杂,这个时候我们继续基于寄存器开发就会显得非常麻烦,在一定程度上就会影响到我们的开发效率。因此,为了提高开发效率,实现stm32的快速开发,这里我们有必要在学习一种STM32开发方式——基于HAL库开发。

一、HAL库的基本介绍

                                                为什么要学习HAL库?


       寄存器开发效率比较低,在工作中如果想快速开发,还是要会用到HAL库开发。

       HAL库是目前ST主力推广的开发方式,所以你如果还要用ST的芯片,会使用HAL库开发是势在必行的。而且最最关键的是,使用HAL开发有诸多的好处。

       目前,HAL库已经支持STM32全线产品。

                                                      什么是HAL库?


       HAL库的全称是Hardware Abstraction Layer,翻译成硬件抽象层。简单来说就是我们的HAL库给我们使用的一些硬件模块做了一个抽象,然后提供了这些硬件的接口供我们直接使用,这样就大大提高了我们的开发效率。HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。该库提供了一整套一致的中间件组件,如RTOS,USB,TCP/IP和图形等。

       HAL库是基于一个非限制性的BSD许可协议(Berkeley Software Distribution)而发布的开源代码,因此我们可以对其进行二次开发。 ST制作的中间件堆栈(USB主机和设备库,STemWin)带有允许轻松重用的许可模式,只要是在ST公司的MCU 芯片上使用,库中的中间件(USB 主机/设备库,STemWin)协议栈即被允许随便修改,并可以反复使用。至于基于其它著名的开源解决方案商的中间件(FreeRTOS,FatFs,LwIP和PolarSSL)也都具有友好的用户许可条款。

简单介绍一下CMSIS与HAL库的关系


CMSIS(Cortex Microcontroller Software Interface Standard)是 Cortex-M 处理器系列与供应商无关硬件抽象层。它是ARM公司制定的一个标准。它可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。简单来说,就是ARM公司制定标准,芯片厂商按照此标准编写相应的程序,实现统一的接口,方便开发人员的使用。


 二、HAL库开发环境搭建

现在我们要基于HAL库开发,和前面配置Keil一样,也需要搭建以下开发环境,此时我们会用到一个软件STM32CubeMX,因此我们需要先安装好该软件。

1、安装JAVA运行环境

 STM32CubeMX要求JAVA8的运行环境,这里给出其下载地址,可自行下载:

Java Archive Downloads - Java SE 8u211 and later

进入官网,找到jre-8u381-windows-x64.exe然后下载即可,初次下载可能需要注册账号,直接按要求一步一步来即可。

2、安装STM32CubeMX

该软件是ST公司提供的一个工具,非常方便的用图形化的方式帮我们创建工程,和完成各种配置。

下载地址:https://www.st.com/zh/development-tools/stm32cubemx.html#get-software

我这里使用的版本是6.10.0版本的软件,进入官网找到如下图所示对应的版本,下载即可

下载到自己电脑以后,就可以开始安装了

 首先双击自己下载产生的.exe文件,然后按照如下图操作,顺序进行即可

这里选择安装的路径,可自行选择 

 这是说将要给我们创建一个STM32CubeMX的目录,我们点击确定即可

这里问我们是否创建桌面快捷方式和在开始菜单创建快捷方式,自行勾选即可,然后这个第二步可能是根据你刚双击.exe文件是选择的【个人使用】还是【所有人使用】来选择的,能选all users就选吧,不能就选current user也不影响使用。

3、在线下载芯片支持包

首先,双击图标进入软件

进入后是这样的界面

然后,如果是初次使用ST的软件,可能没有ST的账号,所以我们先注册一个,方便后续下载他们的相关软件或支持包

然后根据提示创建好自己的账号然后登录即可 

然后就是安装一下芯片支持包,按照下图操作即可

找到对应的芯片名,然后安装对应版本的芯片支持包。我这里芯片是STM32F103ZET6,所以选择STM32F1系列的芯片,然后使用1.8.5版本的支持包

至此,芯片支持包就安装完成了。接下来我们看看是否真正安装成功

首先进入STM32CubeMX,点击help,进行如下图操作

然后就能看见如下界面

这里给了我们仓库文件路径,所谓仓库,就是存放我们下载的芯片支持包存放的地方。我们直接复制这个路径即可查看我们芯片支持包的安装情况

如上图所示,主要是看第一个文件夹是否存在,存在则说明所选版本的芯片支持包安装成功了!

 4、离线下载芯片支持包

有时候,我们网络可能会比较慢,所以在线下载时得等很久,因此我们还可以以离线的方式去下载对应的芯片支持包。这里给下载地址:

下载地址:https://www.st.com/zh/development-tools/stm32cubemx.html#tools-software

介绍 STM32CubeTM是意法半导体的一项原始计划,旨在通过减少 开发工作,时间和成本。 STM32CubeTM涵盖了STM32产品组合。 STM32CubeTM版本1.x包括: STM32CubeMX,一种图形软件配置工具,允许生成C初始化 使用图形向导编写代码。 每个系列都提供了一个全面的嵌入式软件平台(例如STM32CubeF4 STM32F4系列) STM32Cube HALSTM32抽象层嵌入式软件,可确保最大化 跨STM32产品组合的可移植性 一套一致的中间件组件,例如RTOS,USB,TCP / IP,图形 所有嵌入式软件实用程序均附带全套示例。 HAL驱动程序层提供了一组通用的多实例简单API(应用程序编程) 接口)与上层(应用程序,和堆栈)进行交互。它由通用组成 和扩展API。它是直接基于通用体系结构构建的,并允许构建层, 例如中间件层,以实现其功能,而无需深入了解如何使用 单片机这种结构提高了代码的可重用性,并保证了在其他上的轻松移植 设备。 HAL驱动程序包括一整套现成的API,可简化用户应用程序 实施。例如,通信外围设备包含用于初始化和配置的API 外设,以基于轮询管理数据传输,处理中断或DMA,以及管理 通讯错误。 HAL驱动程序API分为两类:提供通用和通用的通用API 所有STM32系列和扩展API的函数,其中包括特定的和自定义的函数 给定的家庭或零件号。 HAL驱动程序是面向功能的,而不是面向IP的。例如,计时器API分为 IP提供的功能包括以下几类:基本计时器,捕获,脉冲宽度调制 (PWM)等。 驱动程序源代码是在严格的ANSI-C中开发的,使它独立于 开发工具。使用CodeSonarTM静态分析工具进行检查。它是有据可查的,并且 符合MISRA-C 2004。 HAL驱动程序层通过检查所有输入值来实现运行时故障检测 功能。这种动态检查有助于增强固件的鲁棒性。运行时检测 也适用于用户应用程序开发和调试。 本用户手册的结构如下: HAL驱动程序概述 每个外围设备驱动程序的详细描述:配置结构,功能以及使用方法 给定的API来构建您的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值