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

HAL库外设设计思想

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

HAL库使用主线

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

一、外设初始化


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

二、外设的使用


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

阻塞轮询

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

中断

DMA

其他功能

相关推荐
让子弹飞023 分钟前
35.成功解决编写关于“江协科技”编写技巧第二期标志位积累的问题
stm32·按键
木子单片机1 小时前
基于STM32语音识别柔光台灯
stm32·单片机·嵌入式硬件·proteus·语音识别·keil
广药门徒1 小时前
澄清 STM32 NVIC 中断优先级
单片机·嵌入式硬件
小禾苗_3 小时前
32单片机——窗口看门狗
单片机·嵌入式硬件
小灰灰搞电子3 小时前
单片机0-10V电压输出电路分享
单片机·嵌入式硬件
Moonnnn.4 小时前
【单片机期末】串行口循环缓冲区发送
笔记·单片机·嵌入式硬件·学习
lingzhilab5 小时前
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
stm32·嵌入式硬件·信息可视化
小智学长 | 嵌入式9 小时前
SOC-ESP32S3部分:26-物联网MQTT连云
单片机·物联网·esp32
GXSC10 小时前
国芯思辰| AD7894的优质替代方案:SC1424模数转换器在分布式控制系统中的应用优势
嵌入式硬件
lixzest10 小时前
Keil调试模式下,排查程序崩溃简述
stm32·单片机