我的学习之路_stm32f103c8t6_Day6

271 阅读1分钟

中断大致介绍

EXTI-捕获外部输入等事件并且生成请求

中断图像说明.png 如果没开启中断使能,则是一个事件,常用在AD转换等

按钮的中断设置

GPIO中断输入设置1.png

GPIO中断输入设置2.png

GPIO中断输入设置3.png

按钮的中断在STM32CubeMx中设置如上所示,重点是在图二中,要选择External Interrupt模式,具体是Rising 还是Falling 还是 Rising/Falling (上升沿/下降沿)模式,看自己的需求

image.png

生成的代码如上所示

  1. 使能时钟线
  2. 配置GPIO为中断上升沿进入中断,下拉模式
  3. 配置中断使能
HAL_NVIC_SetPriority(EXTI15_10_IRQn,13,0);//配置中断按钮中断分配到第13组0号中断组
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);//使能中断通道

具体按钮分配到哪个通道可以瞅瞅 stm32f103xb.h 文件中的内容:

image.png

  • 框1是引脚号为0~4的引脚中断
  • 框2是引脚号为5~9的引脚中断
  • 框3是引脚号为10~15的引脚中断

中断函数设置

image.png

注意三点:

  1. HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);要放在最后,因为里面的复位中断
  2. 要用HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13)判断是哪个引脚导致的中断
  3. HAL_Delay(100)软件做的按钮防抖

加油!

目前学习到了 GPIO的输入输出以及GPIO的中断