提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
HAL库概念及优点
HAL(Hardware Abstraction Layer)即硬件抽象层。它是 ST(意法半导体)公司为其 STM32 系列微控制器推出的一种软件库。其主要目的是提供一种简单且高效的方式来操作硬件设备,使得用户可以更方便地开发基于 STM32 的应用程序,而无需深入了解底层寄存器的复杂细节。
HAL 库主要有以下优点:
- 硬件抽象方面:
- 降低开发难度,把硬件底层操作细节封装起来,让开发者能更专注于应用程序逻辑。
- 方便代码维护,硬件更新或修改时,只需更新库的底层代码,上层应用代码通常不用大改。
- 可移植性方面:
- 跨芯片移植方便,对于有相同外设的不同 STM32 芯片,代码很容易移植。
- 便于项目升级或更换硬件平台,减少因芯片型号更换而带来的代码改动量。
- 代码规范性和可读性方面:
- 函数命名清晰直观,采用 “HAL_外设名称_操作名称 ()” 的格式,易于理解功能。
- 代码结构层次分明,每个模块对应相关外设,且有注释辅助理解。
- 集成开发环境支持方面:
- 方便代码生成,通过与开发工具结合,能自动生成初始化代码,节省时间并减少错误。
- 调试功能增强,便于在调试过程中查看函数执行情况。
提示:以下是本篇文章正文内容,下面案例可供参考
一、对HAl库常见的函数记录
1.GPIO
void MX_GPIO_Init();
//1.初始化函数 通过在CubeMax里的设置生成
//2.对芯片的 GPIO 引脚进行初始化配置,
像设置引脚是作为输入还是输出、是否开启上拉或下拉电阻等
HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//1.翻转引脚状态 0/1参数:
GPIOx ---GPIO中某一系列引脚,如GPIOA,GPIOC..
GPIO_Pin ---如GPIO_Pin_0;
HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//1.读取引脚状态参数:
GPIOx ---GPIO中某一系列引脚,如GPIOA,GPIOC..
GPIO_Pin ---如GPIO_Pin_0;
HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
//1.写引脚状态 0/1参数:
GPIOx ---GPIO中某一系列引脚,如GPIOA,GPIOC..
GPIO_Pin ---如GPIO_Pin_0;
PinState ---
枚举类型的变量;
标签:---,HAL,函数,Pin,引脚,所用,STM32,GPIO From: https://blog.csdn.net/qq_70345699/article/details/144383590中断函数
图示函数为 EXTI15_10 触发的外部中断函数
HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
//1.首先会清除中断标志位
//2.会调用HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
其中HAL_GPIO_EXTI_Callback函数是一个回调函数,用户可以在自己的代码中重写这个函数,来定义当特定引脚中断发生时要执行的具体操作;