嵌入式开发学习日志31——stm32之外部中断与定时器中断的差别与选择

在讲述完EXTI以及定时器两大中断后,其实内心始终有个疑惑,stm32有必要分出那么多模块用于中断的操作么?只留下EXTI或者定时器模块,以此省下更多的空间用于其他业务的处理不是更好么?但在尝试完不同中断的功能,以及再次浏览两种中断的描述之后,也有了一层新的理解。

首先,仅从触发来源看,两类中断就已经有所差别了。EXTI是由外部事件触发的,例如引脚电平的高低变化,而定时器则是通过内部定时器计数器模块的计数溢出或者达到阈值,来决定是否触发中断。

其次,EXTI外部中断更适合于外部动态环境,这是因为它的触发条件十分多样,可以通过电平或者边沿检测进行中断的触发,灵活性更好。而定时器中断行为就比较固定了,需要程序员预先设计好时间的参数然后导入,这样才能实现时间的精准控制。

同时,两者所需要的硬件资源配置也不大一样。外部中断更多依赖于本身的EXTI线路以及片上的部分外设。而定时器中断有独立的定时器模块以及相应的寄存器资源(比如计数寄存器,自动重载寄存器,预分频寄存器等)。

但是以上说的这些只是它们的不同之处,真正让它们无法被替代的,还是各自所能应对的业务场景。EXTI更适合于应对外部实时发生的事件,比如按键的按下造成灯泡亮起、传感器信号的输入等,能够及时处理这些外部信号。而定时器中断更适合于周期性的任务,预设好的自动重载值能够保证程序定期产生中断,一定程度上实现自动处理,同时提供规律性调度能力。

总之,理清楚两者间的差别对于业务场景应用时的选择是十分重要的,而且在向下讲述更多有关stm32的强大功能前,适当缓一缓,整理一下思绪也是很有必要的。

相关推荐
非凡ghost5 分钟前
Floorp Browser(基于Firefox火狐浏览器)
前端·windows·学习·firefox·软件需求
M1582276905514 分钟前
串口设备联网利器!SG-TCP232-110 单通道串口服务器,让老旧设备秒变智能终端
运维·服务器·单片机
weixin_4407305015 分钟前
Java基础学习day01
java·开发语言·学习
军军君0125 分钟前
Three.js基础功能学习一:环境资源及基础知识
开发语言·javascript·学习·3d·前端框架·threejs·三维
雅欣鱼子酱1 小时前
Type-C受电端芯片ECP5702演示:串口发送电压电流,给外部MCU读取
c语言·人工智能·单片机·嵌入式硬件·芯片·电子元器件
文sir.1 小时前
任务管理--FreeRTOS
单片机·嵌入式硬件·freertos
IT_阿水1 小时前
基于STM32的智慧物联网系统板---离线语音模块使用
stm32·嵌入式硬件·物联网
谁刺我心1 小时前
stm32cubemx外部中断按钮测试
stm32·单片机·嵌入式硬件
摸鱼仙人~2 小时前
简单的GAN生成学习案例
人工智能·学习·生成对抗网络
开放知识图谱2 小时前
论文浅尝 | G2S:一个用于大语言模型的时间知识图预测的通用到具体的学习框架(ACL2025)
人工智能·学习·语言模型·自然语言处理