STM32学习(三)外部中断
一些前置知识
内部原理简介
首先信号进入输入驱动器,详情见上一篇文章。

信号进入后顺序如下:

边路检测电路:信号进来首先经过上升下降选择寄存器,由CubeMx进行配置。第一个即为寄存器的配置。第二个为输入信号上拉下拉的配置。

接着,经过一个或门。
软件中断寄存器:模拟产生中断,用处可暂时忽略。
事件屏蔽寄存器:非相关知识,之后了解。
输入后,
请求挂起寄存器:相应位置变为’1’,即输入高电平信号。
中断屏蔽寄存器:CubeMx已配置好。
经过与门,进入NVIC。
NVIC主要掌管中断向量表。主要由抢占优先级和响应优先级。主要规则如下:

因此,如要在中断处理函数中使用HAL_DELAY,需要线配置“时钟滴答”的优先级,才可打断中断,实现延时。

代码实践
外部中断实现摁键控制亮灭
在stm32f103xx_it.c中进行改写,如下图所示:
1 | void EXTI9_5_IRQHandler(void) |
一些参考资源
1.【keysking的STM32教程】 第7集 深入讲解STM32中断_哔哩哔哩_bilibili
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Peter-QY!