硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5962|回复: 1
收起左侧

[有问必答] SysTick_Handler函数

[复制链接]

3

主题

5

回帖

14

积分

新手上路

积分
14
发表于 2016-5-28 22:12:16 | 显示全部楼层 |阅读模式
安富莱V5开发板V5-005b_NVIC实验_IRQPriority例程中stm32f4xx_it.c文件中有个中断函数

void SysTick_Handler(void)
{
        /* 如果按键K1中断被嘀嗒定时器抢占 */
    if(NVIC_GetActive(EXTI9_5_IRQn) != 0)
    {
        ubPreemptionOccurred = 1;
    }
}
NVIC_GetActive(EXTI9_5_IRQn) != 0说明NVIC_GetActive函数返回结果是1,只是表明K1按键中断是active,为什么可以说“按键K1中断被嘀嗒定时器抢占”了呢?还是我对NVIC_IABR寄存器理解有误呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2016-5-28 22:51:00 | 显示全部楼层
因为设置的是滴答定时器中断的优先级高于按键K1的EXTI中断,此次在滴答定时器中断中检测到按键K1的EXTI中断还处于激活状态,说明被抢占运行了,退出滴答定时器中断后还有继续执行K1的EXTI中断,这就是所谓的中断嵌套。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 00:49 , Processed in 0.035106 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表