中断大致介绍
EXTI-捕获外部输入等事件并且生成请求
如果没开启中断使能,则是一个事件,常用在AD转换等
按钮的中断设置
按钮的中断在STM32CubeMx中设置如上所示,重点是在图二中,要选择External Interrupt模式,具体是Rising 还是Falling 还是 Rising/Falling (上升沿/下降沿)模式,看自己的需求
生成的代码如上所示
- 使能时钟线
- 配置GPIO为中断上升沿进入中断,下拉模式
- 配置中断使能
HAL_NVIC_SetPriority(EXTI15_10_IRQn,13,0);//配置中断按钮中断分配到第13组0号中断组
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);//使能中断通道
具体按钮分配到哪个通道可以瞅瞅 stm32f103xb.h 文件中的内容:
- 框1是引脚号为0~4的引脚中断
- 框2是引脚号为5~9的引脚中断
- 框3是引脚号为10~15的引脚中断
中断函数设置
注意三点:
- HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);要放在最后,因为里面的复位中断
- 要用HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13)判断是哪个引脚导致的中断
- HAL_Delay(100)软件做的按钮防抖
加油!
目前学习到了 GPIO的输入输出以及GPIO的中断