【STM32】HAL库之STM32CubeMX+True Studio系列教程(基于STM32F103ZET6)

前言

第一次写博客,记录自己的STM32HAL库学习之旅。之前使用的都是标准库,利用寒假想扩展一下,开始学习HAL库,而且看了很多资料,都说HAL库比标准库更好用,配合着ST官方的STMCubeMX和True Studio能使开发变得更加方便,提高开发效率,之后我的学习之路也是完全基于HAL库+官方开发工具进行的。由于我专业水平的局限性,可能教程中会有错误,望大佬能够指正,传授经验。

HAL库介绍

HAL是Hardware Abstraction Layer的缩写,中文名:硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件。可以说HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。目前,HAL库已经支持STM全系列产品,应用范围广,是ST官方主推固件库。
(关于HAL库的结构及API函数等详细介绍我就省略了,有兴趣的可以去网上查找相关资料,网上资料很齐全的)

HAL库开发工具介绍

1.STM32CubeMX

STM32CubeMX一个图形工具,它具有丰富的而又易于使用的图形用户界面,允许用户在图形界面配置STM32微处理器和微控制器,在图形界面进行时钟,寄存器,IO等的初始化操作,自动生成初始化C代码及工程文件,可适用于符合 IAR ™、Keil 和 GCC 等编译器。(官方介绍及文档)
【图形界面】
【STM32】HAL库之STM32CubeMX+True Studio系列教程(基于STM32F103ZET6)_第1张图片
具体安装教程会在之后的文章专门做详细教程。

2.True Studio

上述STM32CubeMX属于配置工具,不能像MDK keil5、IAR等IDE一样进行C用户代码编辑和编译。我们普遍采用MDK keil5进行STM32程序的编辑和编译,但它是收费的(虽然我们用的几乎都是破解的),而且keil5的UI比较古老,有时候还经常出现一些bug。现在推荐使用True Studio编译器,用了之后发现这绝对是HAL库开发首选IDE。True Studio是Atollic开发的一款强大的基于Eclipse的C / C++集成开发工具,首先Atollic被ST收购后,这款IDE是免费的,而且可扩展,系统分析等功能,支持ST-Link和J-Link调试。除了功能强大外,UI也非常漂亮(eclipse界面)。【官方介绍及文档】
【True Studio界面】
【STM32】HAL库之STM32CubeMX+True Studio系列教程(基于STM32F103ZET6)_第2张图片
具体安装及配置教程会在之后的文章专门做详细教程。

3.STM32CubeProgrammer

STM32CubeProgrammer是ST官方推出的新一代烧写工具,开发过STM32的都知道,我们平时烧录程序一般由这几种方式:通过ST-Link\J-Link直接在编译器进行下载、通过串口烧录工具FlyMcu、通过USB DfuSe等。而STM32CubeProgrammer是一个高度集成的全新的程序下载工具,它集成了多种下载方式,同时具有如下多种功能:1、可对片内flash进行擦除或编程以及查看flash内容;2、支持S19,HEX,ELF、BIN等格式的文件;3、支持调试接口或bootloader接口、STLINK 调试接口【JTAG/SWD】、UART或USBDFU bootloader 接口;4、支持对外部的存储器的擦除或编程;5、支持STM32芯片的自动编程【擦除、校验、编程、选项字配置】;6、支持对STM32片内OTP区域的编程等。【官方介绍及文档】
【STM32CubeProgrammer】
【STM32】HAL库之STM32CubeMX+True Studio系列教程(基于STM32F103ZET6)_第3张图片
安装教程后续更新。

HAL库开发流程

关于HAL库开发,和标准库开发没有多大区别,主要区别在于HAL库API函数大多比标准库功能强大,实现某种功能往往只需简单的几步函数调用,不需像标准库那样频繁调用函数;再配合ST官方开发工具:STM32CubeMX+True Studio+STM32CubeProgrammer,使得开发效率大大提高。而且使用STM32CubeMX进行处理器配置,能快速入门单片机,使小白更容易上手。
开发流程主要就是:1.使用STM32CubeMX对处理器进行配置,生成工程文件;2.用True Studio打开工程文件(当然,其他IDE也是OK的)进行用户程序设计、编译;3.使用STM32CubeProgrammer进行程序下载(其他途径也是OK)、在开发板运行;4.根据需求对程序进行优化和升级。

后话

后续会更新HAL库开发工具的安装教程及标准库例程向HAL库例程的移植,感谢支持!!!

你可能感兴趣的:(HAL库)