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

HAL库外设设计思想

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

HAL库使用主线

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

一、外设初始化


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

二、外设的使用


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

阻塞轮询

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

中断

DMA

其他功能

相关推荐
Freak嵌入式7 小时前
实战对比:用 mpremote/Putty/MobaXterm 连接树莓派 Pico REPL,谁更省心?
java·大数据·开发语言·科技·单片机·嵌入式硬件
Freak嵌入式7 小时前
告别死循环!Pico 外部中断控制 LED,比轮询高效 100 倍
java·开发语言·stm32·单片机·嵌入式硬件
AOI小白新手上路7 小时前
江科协51单片机入门:新建第一个Keil工程,点亮第一个LED(含完整代码)
stm32·单片机·51单片机
自小吃多8 小时前
PCB Editor软件网络飞线常规处理笔记
笔记·嵌入式硬件
深圳市恒锐丰科技杨生8 小时前
CL4056D 1A 单节锂电池线性充电芯片|ESOP‑8/DFN2×2‑8 便携充电方案
嵌入式硬件·硬件工程
Messy create8 小时前
【BMS-AFE-被动均衡】
嵌入式硬件·能源
恒锐丰科技林技术员8 小时前
SS6289 桥式驱动芯片:高可靠性有刷直流电机驱动优选方案
经验分享·嵌入式硬件·硬件工程
水果里面有苹果18 小时前
39-UM960-RTK模块-和芯星通
嵌入式硬件
电子科技圈18 小时前
从工厂直达全球市场:emnify为联网设备制造商推出免费SGP.32引导网络接入的OEM计划
嵌入式硬件·mcu·物联网·智能硬件·iot·交通物流
736c18 小时前
STM32-FLASH 11
stm32·单片机