STM32的HAL库开发系列 - GPIO中断/外部中断EXTI

简介: STM32的HAL库开发系列 - GPIO中断/外部中断EXTI
+关注继续查看

STM32的HAL库开发系列 - GPIO中断/外部中断EXTI

中断它可以在GPIO口的电平发生变化时产生中断,从而使得STM32微控制器能够及时响应外部设备的变化。

STM32的GPIO中断/外部中断EXTI可以配置为上升沿中断、下降沿中断和双边沿中断三种类型,分别在GPIO口电平从低电平变为高电平、从高电平变为低电平和在任意电平变化时产生中断。

STM32的GPIO中断/外部中断EXTI还支持中断优先级的配置,可以设置不同的中断优先级以控制中断的处理顺序。STM32的GPIO中断/外部中断EXTI还支持中断嵌套,可以在处理一个中断时产生另一个中断。

HAL库gpio中断服务函数

void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
  /* EXTI line interrupt detected */
  // 确保产生了EXTI Line中断
  if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
  {
    // 清除中断标志位
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
    // 调用外部中断回调函数
    HAL_GPIO_EXTI_Callback(GPIO_Pin);
  }
}

在应用层编程中,可以使用STM32的GPIO中断/外部中断EXTI库函数进行中断的配置和使用,这样可以简化程序的复杂性。STM32的GPIO中断/外部中断EXTI库函数可以提供高层次的接口,让用户只需要关注中断的功能,而不需要关注底层的实现细节。

HAL库gpio中断回调函数

__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
  /* Prevent unused argument(s) compilation warning */
  UNUSED(GPIO_Pin);
  /* 
  NOTE: This function Should not be modified, when the callback is needed,
           the HAL_GPIO_EXTI_Callback could be implemented in the user file
  */
}

回调函数是加了__weak修饰的弱函数。可以在其他地方编写同名回调函数,编译器在编译时会优先选择不带__weak修饰的函数进行编译。

STM32的GPIO中断/外部中断EXTI是一种非常重要的功能,它可以在GPIO口的电平发生变化时产生中断,使得STM32微控制器能够及时响应外部设备的变化,提高系统的可靠性和灵活性。此外,STM32的GPIO中断/外部中断EXTI还支持中断类型的配置、中断优先级的配置和中断嵌套等特性,使得STM32微控制器能够更好的响应外部设备的变化。

目录
相关文章
|
3月前
|
移动开发 API
STM32使用HAL库操作GPIO
使用HAL库的优点在于不用手动添加初始化的代码了,CubeMX会根据软件设置自动生成
82 0
(嵌入式系列)STM32系列单片机的GPIO简介
(嵌入式系列)STM32系列单片机的GPIO简介
(嵌入式系列)STM32系列单片机的GPIO简介
|
4月前
STM32的GPIO输入与输出
STM32的GPIO输入与输出
44 0
|
4月前
【STM32】引脚GPIO批量操作数组&for循环流水灯
【STM32】引脚GPIO批量操作数组&for循环流水灯
184 0
|
4月前
【STM32】引脚GPIO输出操作点亮一颗LED
【STM32】引脚GPIO输出操作点亮一颗LED
|
5月前
|
芯片 iOS开发
STM32 | GPIO口的普通与复用如何配置与用法,本文降从最底层教你如何查看手册运用寄存器来实现GPIO口的配置
STM32 | GPIO口的普通与复用如何配置与用法,本文降从最底层教你如何查看手册运用寄存器来实现GPIO口的配置
153 0
|
5月前
|
编译器 C语言
STM32学习笔记(1) GPIO初始化及点亮LED
在这一段代码中,假设同时有A.h和B.h同时包含了这个头文件,在编译器编译A时,会先判断LED.H有没有被定义(这里肯定是未被定义的),那么就定义(define __LED_H),然后再(endif),在编译器编译B时,同样会判断LED.H有没有被定义(这里经过A的编译,肯定是被定义的),那么就直接(endif)。这样,就可以防止重复编译。
63 0
|
7月前
STM32控制GPIO完成点亮LED灯
STM32控制GPIO完成点亮LED灯
150 0
STM32控制GPIO完成点亮LED灯
|
7月前
STM32使用寄存器通过控制GPIO点亮一盏灯
STM32使用寄存器通过控制GPIO点亮一盏灯
38 0
STM32使用寄存器通过控制GPIO点亮一盏灯
|
7月前
|
芯片
【STM32】Cortex-M4 超详细的GPIO输出分析
我们知道stm32的GPIO口可以感知我们的外部世界,也可以通过外设控制外部世界,但是我们要实现这个感知和操控的过程,那么我们就要知到GPIO架构的原理是什么.
【STM32】Cortex-M4 超详细的GPIO输出分析
相关产品
云迁移中心
推荐文章
更多