[STM32F2] 配置中断优先级

[复制链接]
 楼主| 发表于 2024-12-14 07:36 | 显示全部楼层 |阅读模式
在 STM32CubeMX 或 HAL 库中设置中断优先级。

1. STM32CubeMX 配置
选择中断源(如 EXTI 外部中断、USART 数据中断等)。
设置抢占优先级和子优先级。
生成代码。
2. HAL 库配置中断优先级
手动配置中断优先级和使能:

c
复制代码
// 配置 NVIC 中断优先级
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
复制代码
// 配置 EXTI0(PA0 按键)中断优先级
HAL_NVIC_SetPriority(EXTI0_IRQn, 2, 1); // 抢占优先级 2,子优先级 1
HAL_NVIC_EnableIRQ(EXTI0_IRQn);         // 使能中断

发表于 2024-12-25 07:44 | 显示全部楼层
这个配置方式太清晰了,尤其对新手很友好!
发表于 2024-12-25 07:45 | 显示全部楼层
STM32CubeMX确实方便,优先级调整直接在图形界面完成,省事不少。
发表于 2024-12-25 07:45 | 显示全部楼层
HAL_NVIC_SetPriority这个函数我之前用错了,优先级搞乱后踩了不少坑。
发表于 2024-12-25 07:45 | 显示全部楼层
抢占优先级和子优先级的区别总是搞混,这次又复习了一遍。
发表于 2024-12-25 07:46 | 显示全部楼层
STM32的中断配置灵活性确实高,关键看怎么合理安排。
发表于 2024-12-25 07:46 | 显示全部楼层
PA0按键触发的中断优先级调好了,终于不卡住了!
发表于 2024-12-25 07:46 | 显示全部楼层
有没有遇到过优先级设置后不起作用的情况?我之前疏忽了 NVIC 配置。
发表于 2024-12-25 07:46 | 显示全部楼层
STM32CubeMX配置虽方便,但手动调优还是得懂,帖子总结得很好。
发表于 2024-12-25 07:47 | 显示全部楼层
每次都感觉 HAL 库代码很清晰,但还是得注意细节,比如中断的禁用和使能。
发表于 2024-12-25 07:47 | 显示全部楼层
之前不懂抢占优先级和子优先级的重要性,看了你的例子明白多了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

187

主题

1191

帖子

0

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