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

HAL库外设设计思想

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

HAL库使用主线

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

一、外设初始化


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

二、外设的使用


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

阻塞轮询

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

中断

DMA

其他功能

相关推荐
敬畏_上帝27 分钟前
433无线接收解码-实测可到10-20米
单片机·嵌入式硬件
学嵌入式的小杨同学34 分钟前
STM32 进阶封神之路(十二):串口实战全攻略 —— 发送 / 接收 / 中断 /printf 重定向(库函数 + 寄存器)
stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb·嵌入式实时数据库
LCG元40 分钟前
STM32项目实战:基于FreeRTOS的多任务智能家居控制系统
stm32·嵌入式硬件·智能家居
✎ ﹏梦醒͜ღ҉繁华落℘1 小时前
单片机基础知识 -- 大端模式 与 小端模式
单片机·嵌入式硬件
雾削木1 小时前
STM32 基于外部时钟源的 PWM 测量
stm32·单片机·嵌入式硬件
qq_411262422 小时前
esp的深度睡眠关机功耗很高,一般软件方面应该查哪里?
单片机·嵌入式硬件
San_a dreamer fish2 小时前
STM32开发入门(二):
stm32·单片机·嵌入式硬件
v先v关v住v获v取2 小时前
CC1031载货汽车变速器结构设计13张cad+设计说明书+三维图
科技·单片机·51单片机
冒险家KL2 小时前
STM32 ISP自动下载探索及官方STM32CubeProgrammer实现自动下载
stm32·嵌入式硬件·isp
Wave8453 小时前
智能家居安防系统
stm32·单片机·智能家居