1HAL介绍
1)为什么要学习HAL库开发
HAL库是目前ST主力推广的开发方式,所以你如果还要用ST的芯片,会使用HAL库开发是势在必行的。而且最最关键的是,使用HAL开发有诸多的好处。
目前,HAL库已经支持STM32全线产品。
2)什么是HAL库
HAL库的全称是Hardware Abstraction Layer,翻译成硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。该库提供了一整套一致的中间件组件,如RTOS,USB,TCP/IP和图形等。
HAL库是基于一个非限制性的BSD许可协议(Berkeley Software Distribution)而发布的开源代码。 ST制作的中间件堆栈(USB主机和设备库,STemWin)带有允许轻松重用的许可模式,只要是在ST公司的MCU 芯片上使用,库中的中间件(USB 主机/设备库,STemWin)协议栈即被允许随便修改,并可以反复使用。至于基于其它著名的开源解决方案商的中间件(FreeRTOS,FatFs,LwIP和PolarSSL)也都具有友好的用户许可条款。
3)CMSIS和HAL库的关系
CMSIS(Cortex Microcontroller Software Interface Standard)是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。它是ARM公司制定的一个标准。它可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。简单来说,就是ARM公司制定标准,芯片厂商按照此标准编写相应的程序,实现统一的接口,方便开发人员的使用。

2HAL库开发环境搭建
HAL库环境一般都是直接使用STM32CubeMX 集成使用下面来安装它
安装STM32CubeMX 他是Java环境所以需要一个Java
2.1安装Java运行环境
STM32CubeMX 要求java8的运行环境。下载地址:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
我给大家准备的是:jre-8u381-windows-x64.exe。 (大家自己找一个Java版本安装就可以了 不是一定8)双击安装即可。
查看Java安装是否成功 在win + r 在输入cmd 黑窗输入 Java -version 即可查看如下
2.2安装STM32CubeMX
是ST公司提供的一个工具,非常方便的用图形化的方式帮我们创建工程,和完成各种配置。
下载地址:https://www.st.com/zh/development-tools/stm32cubemx.html#get-software
双击安装即可。
2.3在线下载芯片支持包
双击安装好的CubeMx。桌面会有快捷方式。
进入如下界面。
先安装下软件支持包:
点击安装之后,需要先登录你的ST账号,没有就先注册一个。
2.4离线安装芯片支持包
如果网速不好,下载会比较慢。也可以选择离线安装。
1)下载离线芯片支持包
下载地址:https://www.st.com/zh/development-tools/stm32cubemx.html#tools-software
2)导入芯片支持包
注意:
(1)上面的离线安装方式只能安装基础包(en.stm32cubef1.zip),升级包(en.stm32cubef1-v1-8-5.zip)无法安装.
(2)把en.stm32cubef1-v1-8-5.zip拷贝到stm32cube的仓库中,直接解压就行了.仓库位置: C:\Users\你的用户名\STM32Cube\Repository. 用解压的文件覆盖原来的基础包.