认识STM32 的中断及如何使用

这篇博客详细介绍了STM32F103C8的中断机制,包括中断类型、ISR、中断语法和实际应用。通过使用按钮和LCD显示屏,展示了如何在STM32中实现中断服务程序,当按钮按下时,LED亮起,LCD显示“INTERRUPT”,松开按钮则恢复正常计数。同时,强调了中断服务程序应保持简洁以及避免在ISR中使用延迟函数的注意事项。
摘要由CSDN通过智能技术生成

中断是一种机制,通过这种机制,I/O或指令可以暂停处理器的正常执行,并像具有最高优先级一样先执行自己的任务。也就是说,当外部中断发生时(比如来自某个传感器),处理器暂停其正在执行,首先提供中断服务,然后继续其正常执行。

为了了解 STM32F103C8 中的中断,我们将使用按钮作为外部中断。在这里,我们让从一个变量从 0 开始每秒增1,并将其显示在16x2 LCD上,当按下按钮时,LED亮起,LCD 显示屏会显示 INTERRUPT,松开按钮LED熄灭。

中断类型和 ISR(中断服务程序)

中断大致可以分为两类:

硬件中断: 如果到处理器的信号来自某些外部设备,例如按钮或传感器,或者来自其他信号并告诉处理器执行 ISR 中存在的特定任务的硬件设备,则称为硬件中断。

软件中断:由软件指令产生的中断。

中断服务程序:中断服务程序或中断处理程序是其中包含少量指令的事件,当发生中断时,处理器首先执行 ISR 中的这些代码,然后再继续执行中断之前正在执行的任务。

STM32中的中断语法

在Arduino IDE中,启用ISR具有以下语法attachInterrupt (digitalPinToInterrupt(pin), ISR, mode),同样可以在 STM32 中使用,因为本文正是使用 arduino IDE 上传代码。

digitalPinToInterrupt(pin):就像在Arduino board Un

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值