• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32 为何优先级高的定时器2居然一次都抢不到中断

FEItwo 2019-04-25 浏览量:1616
个位大佬你们是如何测试STM32中断抢占的,我的测试步骤如下:第一步、我配置了两个定时器,定时器2优先级为3,定时器3优先级为4,
第二步、我各自测试都可以发生中断
第三步、在定时器3中加上while 死循环,因为定时器三优先级低理论上讲定时器3中断在死循环中时候,定时器2肯定可以产生中断,但是定时器2的中断就再也不发生了,程序就死在了定时器3中断中


我想知道为何优先级高的定时器2居然一次都抢不到中断了呢? 费解中,拜求大佬帮忙解答。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 它有两个优先级的,一个是抢占优先级,一个是响应优先级,看你设的是哪个,抢占优先级高的中断可以打断抢占优先级低的中断,如果抢占优先级一致,那比较的就是响应优先级,响应优先级只是决定哪个先响应,并不能互相抢占
    • 发布于 18小时前
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 同一组的几个优先级是按照抢占优先级排列的,虽然定时3优先级低,但是他先抢到,而且不释放,

    同一组里面的的顺序也是排队的,假设有234三个中断,3进入中断,这个时候4和2也都触发中断了,必须等着3结束后再执行2再执行4,这个同一组规则

  • 抢占优先级比较高是可以抢占另一个中断的;这个还是和程序有关;建议把代码贴出来

    将TIM3的优先级改为2;TIM1的优先级改为1试一试。

    • 发布于20小时前
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32 为何优先级高的定时器2居然一次都抢不到中断