STM32之HAL开发——HAL库框架介绍

HAL库外设设计思想

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

HAL库使用主线

HAL使用的主要用在俩个地方,无外乎外设初始化以及外设的使用。想用好这两个功能,我们首先得对外设的封装有一定的了解。
句柄结构体
xx_HandleTypeDef(xx外设句柄结构体,xx表示任意外设名,如GPIO、UART等),这种类似的变量名成为句柄结构体,里面包含着外设初始化所需要用到的配置参数成员。
一般来说都会包含以下这些内容(如图所示):

一、外设初始化


在完成对句柄指针内成员变量的配置后,我们需要调用句柄指针进行一个初始化,HAL库提供的初始化函数有这些,或者说初始化方法有这些:

二、外设的使用


在HAL库中外设的使用就比较复杂了,会有以下这几种常用的使用逻辑:阻塞轮询,中断,DMA。

阻塞轮询

阻塞轮询顾名思义就是在执行完特定任务前,会一直阻塞循环查看当然任务是否被执行完,如果执行完才能运行到程序的下一步,但是在HAL中提供了超时函数,方便超时退出。

中断

DMA

其他功能

相关推荐
lingzhilab20 分钟前
零知开源——基于STM32F407VET6实现ULN2003AN驱动28BYJ-48步进电机控制系统
stm32·单片机·嵌入式硬件
JasmineX-11 小时前
直流电机驱动与TB6612
c语言·stm32·单片机·嵌入式硬件
hahaha601612 小时前
模拟电路中什么时候适合使用电流传递信号,什么时候合适使用电压传递信号
stm32·单片机·嵌入式硬件
小小少年12313 小时前
基于蓝牙的stm32智能火灾烟雾报警系统设计
stm32·单片机·嵌入式硬件
点灯小铭15 小时前
基于51单片机红外避障车辆高速汽车测速仪表设计
单片机·嵌入式硬件·汽车·毕业设计·51单片机·课程设计
猫猫的小茶馆20 小时前
【STM32】将 FreeRTOS移植到STM32F103RCT6 详细流程
stm32·单片机·嵌入式硬件·mcu·智能硬件
智驾20 小时前
MCU平台化实践方案
单片机·嵌入式硬件·mcu·嵌入式
NormalConfidence_Man1 天前
【RT Thread】使用QEMU模拟器结合GDB调试RT Thread内核
linux·嵌入式硬件
日更嵌入式的打工仔1 天前
uC/OS-III 队列相关接口
单片机
李法师_1 天前
lwIP MQTT 心跳 Bug 分析与修复
linux·c语言·stm32·单片机·lwip