使用STM32HAL库已经有了一段时间,觉得相比于标准库,好用了不少。加上STM32CubeMX图形化配置工具的加持,个人认为可以极大提升开发效率。其实关于HAL库的教程已经很多了,关于STM32CubeMX的使用教程也很多,我并不比这些写教程的大牛厉害,只是记录一些个人的看法。还有,随着版本的变化,STM32CubeMX的界面变化也比较大,我基于5.0.1版本重新按步骤截图记录操作。另外,我的思路是通过几个简单的小项目来讲述知识,所以很多资源没有用上,希望可以对你有所帮助。
STM32Cube简介
STM32Cube是意法半导体公司的一个原创项目,它的目的是减少开发工作、时间和成本,让开发人员更加轻松。它包含STM32CubeMX, HAL库,LL库,一些中间件(例如RTOS、USB、AFAT文件系统,TCP/IP)。借助于自身良好的程序架构,支持STM32Cube的STM32系列单片机之间有极好的可移植性。
Cube是立方体的意思,一个大的立方体是由无数个小立方体模块构成。STM32Cube是采用了类似于堆立方体的积木式思想,为了适应日益复杂的设计需求,而开发的可以任意扩展功能的软件设计工具。
使用STM32Cube可以很方便地使用一些嵌入式的操作系统,并能快速连接多种不同的云服务(国内已经支持阿里云、机智云、百度云)。因此,STM32Cube对于交付在的系统,如物联网系统,使用起来也十分便捷。
STM32CubeMX简介
STM32CubeMX是STM32Cube项目中的一个软件或插件,可以理解为一个图形化的C代码配置向导。它能够通过一系列的鼠标操作,很容易地配置STM32微控制器(MCU)和微处理器(MPU),并且能够为Arm Cortex-M内核或Cortex-A内核的设备生产相应的初始化C代码。
它有很多优良特性:
直观选择单片机或处理器。
比较友好的图形化界面。
自动解决引脚冲突。
时钟、配置、外设、中间件的参数修改是动态的。
HAL库简介
HAL是Hardware Abstraction Layer的缩写,中文名:硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件。可以说HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。HAL库是ST未来主推的库,从前年开始ST新出的芯片已经没有STD库了,比如F7系列。目前,HAL库已经支持STM32全线产品。