HAL库+CubeMX 按键的外部中断

HAL库+CubeMX 按键的外部中断

  • 1、内容
  • 2、按键原理图
  • 3、按键软件消抖
  • 4、外部中断
  • 5、程序学习
    • 5.1、外部中断在cubeMX中的配置
    • 5.2、HAL_GPIO_ReadPin函数
    • 5.3、中断回调函数介绍
    • 5.4、程序中的前后台
  • 6、按键中断实现三色LED灯切换程序
  • Copy From 大疆学习文档

1、内容

2、按键原理图

HAL库+CubeMX 按键的外部中断

4、外部中断

外部中断通常是GPIO的电平跳变引起的中断。在stm32中,每一个GPIO都可以作为外部中断的触发源,外部中断一共有16条线,对应着GPIO的0-15引脚,每一条外部中断都可以与任意一组的对应引脚相连,但不能重复使用。例如外部中断Line0可以和PA0,PB0,PC0等任意一条0号引脚相连,但如果已经和PA0相连,就不能同时和PB0,PC0其他引脚相连。
外部中断支持GPIO的三种电平跳变模式,如下所示:

5、程序学习

5.1、外部中断在cubeMX中的配置

STM32的GPIO提供外部中断功能,当GPIO检测到电压跳变时,就会发出中断触发信号给STM32,使程序进入外部中断服务函数。
将PA0号引脚设置为按键的输入引脚,将其设置为外部中断模式。
接着点开GPIO标签页,对引脚进行如下设置,将GPIO模式设置为升降沿触发的外部中断,上下拉电阻设置为上拉电阻,最后设置用户标签为KEY。
外部中断一共有三种触发方式:上升沿触发,下降沿触发和上下沿均触发,其异同可见下表:

HAL库+CubeMX 按键的外部中断

5.3、中断回调函数介绍

每当产生外部中断时,程序首先会进入外部中断服务函数。在stm32f4xx_it.c中,可以找到函数EXTI0_IRQHandler,它通过调用函数HAL_GPIO_EXTI_IRQHandler对中断类型进行判断,并对涉及中断的寄存器进行处理,在处理完成后,它将调用中断回调函数HAL_GPIO_EXTI_Callback,在中断回调函数中编写在此次中断中需要执行的功能。

5.4、程序中的前后台

在单片机中,中断就是前台,而循环就是后台,中断只在中断源产生时才会进行相应的处理,而循环则一直保持工作,只有被中断打断时才会暂停。前后台程序的异同可以参见下表:

HAL库+CubeMX 按键的外部中断

Copy From 大疆学习文档

来源:聚酰胺纤维

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月16日
下一篇 2021年6月16日

相关推荐