在Cube工具还没出来之前,在ST的MCU开发都是用标准固件库,标准库自推出以来受到ST的使用者的推崇,现在很多公司也都在使用。但是ST官方在2013年后就没有更新版本,ST官方也全力推HAL(Hardware Abstraction Layer)库。它的存在是为了确保 STM32 系列最大的移植性。HAL 位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。CubeMX软件可以直接根据开发人员所需的功能勾选,以HAL库文件基础自动产生代码。开发者就可以轻松应用每一个外设。因此,使用 HAL 库可以大大减少用户的程序编写时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用 API (application programming interface 应用编程界面)驱动,API 对该驱动程序的结构,函数和参数名称都进行了标准化。
在 ST 官方的声明中,HAL 库是大势所趋,在 ST 公司最新开发的部分芯片中,只有 HAL 库而没有标准库,从这点便可以说明,以后的战略目标是逐渐的转向HAL 库 。相对于标准库来说,在使用 CubeMX 生成代码后,工程项目和初始化代码已经完成。
cubeMX直接生产的工程支持IAR,keil,TrueSudio。