打印
[STM32F2]

配置中断优先级

[复制链接]
948|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
t60yz|  楼主 | 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);         // 使能中断

使用特权

评论回复
沙发
Clyde011| | 2024-12-25 07:44 | 只看该作者
这个配置方式太清晰了,尤其对新手很友好!

使用特权

评论回复
板凳
公羊子丹| | 2024-12-25 07:45 | 只看该作者
STM32CubeMX确实方便,优先级调整直接在图形界面完成,省事不少。

使用特权

评论回复
地板
周半梅| | 2024-12-25 07:45 | 只看该作者
HAL_NVIC_SetPriority这个函数我之前用错了,优先级搞乱后踩了不少坑。

使用特权

评论回复
5
帛灿灿| | 2024-12-25 07:45 | 只看该作者
抢占优先级和子优先级的区别总是搞混,这次又复习了一遍。

使用特权

评论回复
6
童雨竹| | 2024-12-25 07:46 | 只看该作者
STM32的中断配置灵活性确实高,关键看怎么合理安排。

使用特权

评论回复
7
万图| | 2024-12-25 07:46 | 只看该作者
PA0按键触发的中断优先级调好了,终于不卡住了!

使用特权

评论回复
8
Wordsworth| | 2024-12-25 07:46 | 只看该作者
有没有遇到过优先级设置后不起作用的情况?我之前疏忽了 NVIC 配置。

使用特权

评论回复
9
Pulitzer| | 2024-12-25 07:46 | 只看该作者
STM32CubeMX配置虽方便,但手动调优还是得懂,帖子总结得很好。

使用特权

评论回复
10
Bblythe| | 2024-12-25 07:47 | 只看该作者
每次都感觉 HAL 库代码很清晰,但还是得注意细节,比如中断的禁用和使能。

使用特权

评论回复
11
Uriah| | 2024-12-25 07:47 | 只看该作者
之前不懂抢占优先级和子优先级的重要性,看了你的例子明白多了!

使用特权

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

本版积分规则

186

主题

1037

帖子

0

粉丝