STM32_HAL库所用到的函数(持续更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

文章目录

HAL库概念及优点

一、对HAl库常见的函数记录

1.GPIO


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 —

    枚举类型的变量;

     中断函数

    图示函数为 EXTI15_10 触发的外部中断函数

    HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);

    //1.首先会清除中断标志位

    //2.会调用HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

     其中HAL_GPIO_EXTI_Callback函数是一个回调函数,用户可以在自己的代码中重写这个函数,来定义当特定引脚中断发生时要执行的具体操作;

     

    2.UART

    1.//串口发送数据,使用超时管理机制

    HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);

    实列:HAL_UART_Transmit(&huart1, buffer, 10, UINT32_MAX);

    参数1:句柄 

    参数2:  需要发送的数据

    参数3:发送数据的长度

    参数4:超时时间

    2.//串口接收数据,使用超时管理机制

    HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

    参数1:句柄 

    参数2: 接收数据存放地址

    参数3:接收数据的长度

    参数4:超时时间

    3.//串口中断发送

    HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);

    4.//串口中断接收

    HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);

    作者:Mind the gap223

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32_HAL库所用到的函数(持续更新)

    发表回复