HAL驱动库学习--如何使用HAL库

一 概述
下图是表述了用户层和HAL_Driver的交互过程,基本上从用户APP调用HAL_Driver APIs并且视情况当使用DMA或者专用中断时通过中断处理程序调用HAL_Driver APIs
使用DMA或中断时,中断模式通过回调函数来完成用户定义流程(实时处理),DMA中断模式使用相同的调用流程

二 具体使用过程
1 HAL(硬件抽象层) 初始化

 
 
  1. 2 HAL IO 操作流程 -- HAL functions 与内部数据处理类似发送/接收,读/写. 提供三种处理模型
  2. a Polling mode 查询模式,HAL函数在数据处理完成(阻塞)后返回处理状态(ok or err),可以通过HAL_PPP_GetState()获取具体错误信息
  3. <img src="d99d3f80-e264-472f-a9db-a088dc0c5c20_files/6ae88b28-8824-40a4-a8ea-71c3b1b5a415.png" border="0" alt="" style="font-size: 10.5pt; line-height: 1.5;" name="" width="416" height="205">
  4. b Interrupt mode 中断模式,启动数据处理并开启了相应中断后返回处理状态;该模式下,驱动程序声明了4个函数
  5. HAL_PPP_Process_IT(): 启动中断处理,一般在用户文件中
  6. HAL_PPP_IRQHandler(): 全局外设中断,一般在stm32f0xx_it.c
  7. __weak HAL_PPP_ProcessCpltCallback (): 有关处理结束回调函数
  8. __weak HAL_PPP_ProcessErrorCallback(): 有关错误回调处理
  9. __weak 弱声明,用户可以在应用中重新实现

 
 
  1. c DMA mode 使能相应的DMA中断并启动DMA处理数据后返回处理状态;操作结束后调用回调函数通知用户处理完成;该模式下,驱动程序声明了4个函数:
  2. HAL_PPP_Process_DMA():启动DMA过程,一般在用户文件中
  3. HAL_PPP_DMA_IRQHandler():外设使用的DMA中断,一般在stm32f0xx_it.c
  4. __weak HAL_PPP_ProcessCpltCallback():有关过程结束回调函数
  5. __weak HAL_PPP_ErrorCpltCallback():过程错误回调函数
  6. 如果使用DMA模式,通常在HAL_PPP_MspInit()回调函数中执行DMA初始化





转载于:https://www.cnblogs.com/cat-li/p/4951197.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
介绍 STM32CubeTM是意法半导体的一项原始计划,旨在通过减少 开发工作,时间和成本。 STM32CubeTM涵盖了STM32产品组合。 STM32CubeTM版本1.x包括: STM32CubeMX,一种图形软件配置工具,允许生成C初始化 使用图形向导编写代码。 每个系列都提供了一个全面的嵌入式软件平台(例如STM32CubeF4 STM32F4系列) STM32Cube HAL是STM32抽象层嵌入式软件,可确保最大化 跨STM32产品组合的可移植性 一套一致的中间件组件,例如RTOS,USB,TCP / IP,图形 所有嵌入式软件实用程序均附带全套示例。 HAL驱动程序层提供了一组通用的多实例简单API(应用程序编程) 接口)与上层(应用程序,和堆栈)进行交互。它由通用组成 和扩展API。它是直接基于通用体系结构构建的,并允许构建层, 例如中间件层,以实现其功能,而无需深入了解如何使用 单片机这种结构提高了代码的可重用性,并保证了在其他上的轻松移植 设备。 HAL驱动程序包括一整套现成的API,可简化用户应用程序 实施。例如,通信外围设备包含用于初始化和配置的API 外设,以基于轮询管理数据传输,处理中断或DMA,以及管理 通讯错误。 HAL驱动程序API分为两类:提供通用和通用的通用API 所有STM32系列和扩展API的函数,其中包括特定的和自定义的函数 给定的家庭或零件号。 HAL驱动程序是面向功能的,而不是面向IP的。例如,计时器API分为 IP提供的功能包括以下几类:基本计时器,捕获,脉冲宽度调制 (PWM)等。 驱动程序源代码是在严格的ANSI-C中开发的,使它独立于 开发工具。使用CodeSonarTM静态分析工具进行检查。它是有据可查的,并且 符合MISRA-C 2004。 HAL驱动程序层通过检查所有输入值来实现运行时故障检测 功能。这种动态检查有助于增强固件的鲁棒性。运行时检测 也适用于用户应用程序开发和调试。 本用户手册的结构如下: HAL驱动程序概述 每个外围设备驱动程序的详细描述:配置结构,功能以及使用方法 给定的API来构建您的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值