STM32 HAL库描述

官方下载的HAL库内容包括:STM32Cube HAL库文件、中间件(RTOS、USB、TCP/IP、Graphics)、一系列的外设应用例程。

HAL驱动建立在一套通用的体系结构之上,主要提供一套API接口以便更好地与上层应用进行通信;HAL驱动函数严格按照ANSI-C标准编写,因此可独立于开发工具。

HAL库的特点主要有:

1、抽象于硬件之上的结构体赋值初始化操作,基于功能的分类

2、三种编程模式 —— 轮询方式、中断方式、DMA方式

3、可供用户进行重载的API函数

4、用于轮询方式的系统超时设置

5、完善的对象锁定机制,提供安全的硬件资源访问

HAL驱动层中的回调函数主要有三种类型:

  • 外设的Init和Deinit回调函数 —— HAL_PPPMspInit(),HAL_PPP_MspDeInit()
  • 处理完成回调函数 —— HAL_PPP_ProcessCpltCallback
  • 发生错误时的处理回调函数 —— HAL_PPP_ErrorCallback

HAL驱动文件:

文件描述
stm32f0xx_hal_ppp.c/h外设驱动文件
stm32f0xx_hal_ppp_ex.c/h外设模块扩展驱动文件
stm32f0xx_hal.c/hhal初始化、DBGMCU、重映射、系统延时
stm32f0xx_hal_msp_template.c/h可复制到用户应用文件夹,MSP Init和Deinit(主要回调函数)
stm32f0xx_hal_def.h公用的HAL资源,如结构体、枚举变量等

用户应用文件:

文件描述
system_stm32f0xx.c包含SystemInit函数,重定位中断向量在SRAM中(如果需要),但不完成系统时钟的配置(在HAL文件完成)
startup_stm32f0xx.s包含Reset Handler处理函数、堆栈的初始化等
stm32f0xx_hal_msp.cMSP的初始化和复位
stm32f0xx_flash.icf链接工具,可选
stm32f0xx_hal_conf.h允许用户对其进行配置以选择特定的外设
stm32f0xx_it.c/h外设中断服务函数,其中每个PPP_IRQHandler里都调用了相应的HAL_PPP_IRQHandler

HAL中三种主要的数据结构是:外设句柄、初始化和配置结构体和具体

外设句柄结构体 PPP_HandleTypeDef *handle,主要特点有:

  •  1、支持多实例、同一结构体内部可共享资源
  •  2、存储/管理全局变量,减少外部全局变量的使用,增加程序的稳定性
  •  3、当外设可以使用DMA通道时,相应的DMA接口句柄会添加到PPP_HandlerTypeDef中
  •  4、对于通用的外设,如GPIO、NVIC、SYSTick等,没有实例句柄

HAL 库文件之间的关系:

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值