打印
[STM32F7]

中断优先级与嵌套

[复制链接]
113|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
t60yz|  楼主 | 2024-12-11 14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32 的中断优先级结构
NVIC 的中断优先级分为:

抢占优先级(Preemption Priority):决定中断嵌套的层次,高优先级可打断低优先级中断。
子优先级(Subpriority):决定同一级抢占优先级中断的响应顺序。
优先级数范围:

Cortex-M 系列支持 0(最高)到 15(最低)。
STM32 HAL 通常以较低优先级值表示更高优先级。
中断优先级配置
中断优先级的配置分为以下步骤:

STM32CubeMX 配置
打开 CubeMX,选择对应的中断源。
设置抢占优先级和子优先级。
生成代码。
HAL 库手动配置
使用 HAL API 配置 NVIC:

c
复制代码
// 设置中断优先级
HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority);

// 启用中断
HAL_NVIC_EnableIRQ(IRQn_Type IRQn);

// 禁用中断
HAL_NVIC_DisableIRQ(IRQn_Type IRQn);
示例:

c
复制代码
HAL_NVIC_SetPriority(EXTI0_IRQn, 1, 0);  // EXTI0 抢占优先级 1,子优先级 0
HAL_NVIC_EnableIRQ(EXTI0_IRQn);          // 使能 EXTI0 中断

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

170

主题

1009

帖子

0

粉丝