U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 土豆PE使用教程 >

STM32 HAL库学习笔记3-HAL库外设驱动框架概述

来源:http://www.tudoupe.com时间:2022-03-08

STM32 HAL库学习笔记3-HAL库外设驱动框架概述

  • HAL库外设设计思想
  • HAL库和Cube MX相结合
  • 一、对外设的封装——句柄结构体
  • 二、外设初始化
    • 初始化结构体
    • 初始化的逻辑
  • 三、外设使用逻辑
    • 通用接口函数
      • 初始化函数
      • I/O操作函数
      • 控制函数
      • 状态参数
      • 扩展接口函数
  • 总结

原文链接: https://blog.csdn.net/kouqi627/article/details/115620538

HAL库外设设计思想

HAL库借鉴面向对象的设计思想,将外设驱动封装为对象。

在这里插入图片描述

采用此种开发方式有以下特点:

  • 屏蔽底层硬件:只需了解相关接口函数的功能和参数要求即可
  • 提高开发效率:开发难度较小,开发周期较短,后期的维护升级、以及硬件平台的移植等工作量小
  • 程序执行效率:由于考虑了程序的稳健性、扩充性和可移植性,程序代码比较繁琐和臃肿,执行效率较低

HAL库和Cube MX相结合

在这里插入图片描述

一、对外设的封装——句柄结构体

围绕着芯片设计的外设多种多样,功能也越来越多,为了能够统一管理这些外设,HAL库设计了统一的外设句柄数据类型PPP_HandleTypeDef(PPP代表外设名称)。如定时器句柄:
在这里插入图片描述

保护锁是HAL库提供的一种安全机制,以避免对外设的并发访问。

二、外设初始化

由上述的句柄结构体可知,我们需要定义一个外设句柄指针,并向其中填充参数,其中最重要的就是初始化参数,为此HAL库为不同的外设定义了不同的初始化结构体,且相同外设的不同功能也有不同的初始化结构,如定时器,有时基单元初始化结构体、输入初始化结构体和输出初始化结构体等,分别用于输入捕获和输出比较等不同功能。
初始化这一步骤使用CubeMX配置,可自动生成初始化代码,大大减少了开发难度。如下的初始化函数代码即由CubeMX自动生成的,带有MX前缀。

初始化结构体

代码如下(示例):

初始化的逻辑

在这里插入图片描述
如我们在串口笔记中讲到的串口初始化过程,在HAL_PPP_Init()初始化函数中,将句柄结构中的初始化参数存入寄存器,即进行相关参数的传入赋值,然后调用HAL_PPP_MspInit()函数完成具体的时钟、引脚等资源初始化,完成围绕具体MCU的配置;MSP函数调用完成后,回到HAL_PPP_Init()函数调用现场,根据返回值情况进入下一步,最后完成外设初始化。
以串口为例:
代码如下(示例):

三、外设使用逻辑

通用接口函数

在这里插入图片描述

初始化函数

通过上述的初始化步骤完成调用。

I/O操作函数

根据不同的功能使用,设计了三种不同的编程模型:轮询、中断和DMA。
以后缀区分,入口参数均为外设句柄的指针,其中轮询模式还需要传入超时时间参数。三种不同编程模型的具体实现可参考串口的三篇笔记。

控制函数

可以在使用中,动态的调节外设的参数,如中断及时钟。

状态参数

可以清除和查询一些标志位,获取外设的运行状态以及出错信息。

扩展接口函数

设计扩展接口函数可以兼顾STM32各产品系列的特有功能和扩展功能,兼顾同一个产品系列中不同芯片的特有功能。通过单独定义后续为ex的文件来实现。如stm32fxxx_hal_ppp_ex.h和stm32fxxx_hal_ppp_ex.c

总结

HAL库外设的使用步骤总结如下:

  • 定义并填充PPP外设句柄结构体
  • 如果遵循HAL库规范,通过HAL_MspInit()函数,实现外设底层资源的初始化,包括但不限于GPIO、时钟、DMA、中断等资源的初始化
  • 调用HAL库的对应外设初始化函数,形如:HAL_PPP_Init()
  • 初始化完成,开始使用外设

使用方法具体查看对应外设的HAL库驱动包中的说明:##### How to use this driver#####

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息