STM32中断与轮询笔记

STM32中断与轮询笔记

中断 VS 轮询
轮询:
周期/连续的检查外部事件是否发生
消耗大量CPU的处理时间
轮询过程需要和其他功能代码结合
由于CPU需要处理其他事件(可能是无关紧要的),可能丢失关键事件
中断:
由硬件来判断是否发生外部事件并通知CPU
专用的中断服务程序来处理事件

中断:
适于处理对响应要求非常高的事件
适于处理持续事件非常短的事件
适于低功耗的应用
程序设计较复杂
轮询:
适于处理对时间响应要求低的场合
程序设计简单

中断服务子程(ISR, Interrupt Service Routine)
在一些CPU中,中断服务子程不同于一般的C函数,函数退出时的返回汇编指令有所区别。(入RTI中断返回指令需完成堆栈操作)
在ARM Cortex M0+平台上,中断服务子程与一般C函数写法没有区别,使用同样的汇编返回指令即可。(堆栈弹出由NVIC自动完成)

中断向量表
中断向量表是一段连续的存储空间
在复位后默认的起始位置
每个中断在向量表中都有相应的表项,该表项的值为该中断对应的服务程序的地址(地址指针)
由程序代码确定中断向量表的每个表项
中断向量表的位置是可以通过改写中断向量基址寄存器重新定位的

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值