1+X传感网中级备考:STM32CubeMX简介

1.STM32CubeMX简介

2.标准库和HAL库的区别

3.软件安装

1.STM32CubeMX简介

STM32CubeMX是一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。它包含了STM32所有系列的芯片,包含示例和样本(Examples and demos)、中间组件(Middleware Components)、硬件抽象层(Hardwaree abstraction layer),STM32CubeMX的特性如下
1、直观的选择 STM32 微控制器
2、微控制器图形化配置

  • 自动处理引脚冲突
  • 动态设置确定的时钟树
  • 可以动态确定参数设置的外围和中间件模式和初始化
  • 功耗预测

3、C代码工程生成器覆盖了STM32 微控制器初始化编译软件,如IAR、KEIL、GCC
4、可独立使用或作为 Eclipse 插件使用

图1:STM32CubeMX架构及支持的芯片版本

2.标准库和HAL库的区别

STM32 标准外设库(Standard Peripherals Library)是对 STM32 微控制器的完整封装,它包括了 STM32 微控制器所有外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间 API。通过标准外设库,开发者无需深入掌握底层硬件的细节就可以轻松地驱动外设,快速部署应用。因此,使用标准外设库可以减少开发者驱动片内外设的编程工作量,降低时间成本。标准外设库早期的版本也称固件函数库或简称固件库,它是目前使用最多的库,缺点是不支持 L0、L4 和 F7 等近期推出的 MCU 系列

HAL(Hardware Abstraction Layer,硬件抽象层)库是 ST 公司为 STM32 系列微控制器推出的硬件抽象层嵌入式软件,由STM32CubeMX软件自动生成,它可以提高程序在跨系列产品之间的可移植性与标准外设库相比,HAL 库表现出更高的抽象整合水平。HAL 库的 API 集中关注各外设的公共函数功能,它定义了一套通用的用户友好的 API 函数接口,开发者可以轻松地实现将程 序从 STM32 微控制器的一个系列移植到另一个系列。目前,HAL 库已经支持 STM32 全系列产品,它是 ST 公司未来主推的库

从开发者角度,标准库和 HAL 库,都是提供底层硬件操作 API,使用 HAL 库还是标准库好呢?HAL库和标准库都非常强大,对于目前标准库支持的芯片采用标准库开发也非常方便实用。大家不需要纠结自己学的是 HAL 库还是标准库,无论使用哪种库,只要理解了 STM32 本质,任何库都是一种工具,使用起来都非常方便。学会了一种库,另外一种库也非常容易上手,程序开发思路转变也非常容易。如果你是一个 STM32 熟手,长期从事 STM32 开发,那么有必要对标准库和 HAL 库都有一定的了解,这样才能在项目开发中得心应手游刃有余
(参考文献:《正点原子STM32F1 开发指南(HAL库)》)

图2:标准库与HAL库对比

图3:LL库和HAL库区别

对于软件开发者来说,已经学习或者正在接触的开发方式有:

  • 直接访问寄存器的开发模式: 优点代码简练、执行效率高。缺点代码后期维护难,移植性差;
  • 标准外设库的开发模式:开发者只要会调用 API 即可编写程序。基于标准外设库编写的代码容错性好且后期维护简单,其缺点是运行速度相对寄存器级的代码偏慢;
  • 基于 STM32Cube 的开发模式:初始代码框架是自动生成的,这简化了开发者新建工程、编写初始代码的过程。图形化配置与代码生成工具操作简单、界面直观,这为开发者节省了查询数据手册了解引脚与外设功能的时间。缺点是函数调用关系比较复杂、程序可读性较差、执行效率偏低以及对初学者不友好等;

3. 软件安装:

软件安装请大家参考链接:由课程助教提供;软件安装分为java环境安装,CubeMX安装以及MDK安装;请同学们留言和反馈问题;帮助我们及时更新文档;
[https://www.jianshu.com/p/6aa53115e618]

你可能感兴趣的:(1+X传感网中级备考:STM32CubeMX简介)